从一串英文单词和中文字符中删除所有不需要的字符

Remove all the unnecessary characters from a string of English words and Chinese characters

有没有什么preg_replace函数(或其他方法)可以去掉一串英文和汉字中不需要的字符。不必要的字符包括所有特殊字符(包括下划线)和数字。请注意,我不想删除空格,也不想删除连接的连字符。

例如:

输入:“我来到北京清华大学!嘿,我是马特 - @ * + = 123 45 6 7 890 .._my-you”

输出:“我来到北京清华大学嘿,我是你”

试试这个正则表达式:

[!@*+=._]|(?<=\s)-(?=\s)|\d

还要将您要删除的任何其他内容放入此块[!@*+=._]

Demo

示例来源:

$re = '/[!@*+=._]|(?<=\s)-(?=\s)|\d/u';
$str = '我来到北京清华大学 ! hey i am matt - @ * + = 123 45 6 7 890 .._my-you';
$subst = '';

$result = preg_replace($re, $subst, $str);

echo $result;