是否有一个简单的正则表达式可以捕获所有非英文字符?它需要允许常见的标点和符号,但不需要特殊字符,如俄语,日语等。
寻找适合PHP的东西。
答案 0 :(得分:2)
由于您在评论中引用地址,因此它们也可能包含数字。所以:
preg_replace('/[^[:alpha:][:punct:][:digit:]]/u', utf8_encode($input), '');
应该替换不需要的字符。但是,[:alpha:]
类只有在您的语言环境设置正确的情况下才有效。例如,如果它设置为de_DE
,则不仅“a”到“z”被视为字符,而且“exotics”如“ä”,“ö”,“è”等。< / p>
此外,由于您不想要“俄语,日语等”,请注意u
修饰符。输入必须是UTF-8编码,以免破坏它并给你错误的结果。
答案 1 :(得分:0)
比如这个[^ A-Za-z0-9 \,\。\ - ]?
答案 2 :(得分:0)
答案 3 :(得分:0)
使用hex codes,例如这将清除所有非ascii字符以及行结尾,并用空格替换它们。故意将空格(\x20
)排除在范围之外,以便用一个空格替换连续的空格和/或特殊字符。
$clean = trim(preg_replace('/[^\x21-\x7E]+/', ' ', $input));
答案 4 :(得分:-1)
if (strlen($str) == strlen(utf8_decode($str))) {
}