是否有一般使用的正则表达式删除所有连字符,特殊字符等,所以我只会收到字母。
例如正则表达式包含:,。/<>?;':“| [] {} - = _ + 1234567890!@#$%^& *()| \〜`以及所有连字符和特殊字符。
(不知道这是否被称为正则表达式,但我希望你能得到这个想法)
答案 0 :(得分:4)
这应该有效:
$string = preg_replace("/[^a-zA-Z]+/", "", $string);
如果你想保留数字,请使用以下数字:
$string = preg_replace("/[^a-zA-Z0-9]+/", "", $string);
答案 1 :(得分:2)
如果您只需要获取字母,请删除所有非字母:
preg_replace('~\P{L}+~u', '', $input)
\P{L}
是一个Unicode属性,匹配Unicode字母以外的所有字符。 请参阅regex demo。
如果您还需要处理变音符号(例如,如果您需要保留变音符号),请使用
preg_replace('~[^\p{M}\p{L}]+~u', '', $input)
其中\p{M}
匹配任何变音符号,[^\p{M}\p{L}]+
匹配除字母和变音符号以外的1个或多个字符。
请参阅another demo 。