如何在php中检查utf-8字符串是否包含不需要的字符?

如何在php中检查utf-8字符串是否包含不需要的字符?,php,regex,string,utf-8,Php,Regex,String,Utf 8,我有一个字符串包含utf-8编码的多语言字符,我想检查该字符串是否包含不需要的字符 我已经创建了一个字符白名单的正则表达式,它是: /[^0-9a-za-z\u4e00-\u9fa5{}\s~`!@#$%^&*()_+=\-\[\];:'"<>,.?\/|\\。·?!、——‘’,;:“”()《》……]/i /[^0-9a-za-z\u4e00-\u9fa5{}\s~`!@$%^&*() 我已经检查了preg_match()函数,但是它将返回子字符串来处理正则表达式 我应该

我有一个字符串包含utf-8编码的多语言字符,我想检查该字符串是否包含不需要的字符

我已经创建了一个字符白名单的正则表达式,它是:

/[^0-9a-za-z\u4e00-\u9fa5{}\s~`!@#$%^&*()_+=\-\[\];:'"<>,.?\/|\\。·?!、——‘’,;:“”()《》……]/i
/[^0-9a-za-z\u4e00-\u9fa5{}\s~`!@$%^&*()
我已经检查了preg_match()函数,但是它将返回子字符串来处理正则表达式


我应该怎么做?

u修饰符告诉regexp引擎将模式作为UTF-8字符串处理

因为您的模式似乎包含UTF-8字符,所以使用此标志似乎是正确的

/[^0-9a-za-z\u4e00-\u9fa5{}\s~`!@#$%^&*()_+=\-\[\];:'"<>,.?\/|\\。·?!、——‘’,;:“”()《》……]/ui
/[^0-9a-za-z\u4e00-\u9fa5{}\s~`!@$%^&*()

你能为
不需要的字符列出一些例子吗。
只需检查reg exp中的开始和结束条件,就会得到所需的输出:)+1,以便更好地理解解释不太清楚的问题。@anubhava Hehe谢谢。regexp太难读了。。。我通常更喜欢编写解析器。我通常可以在6个月左右后理解解析器的代码,但几杯啤酒就足以让我忘记昨天的regexp应该做什么:D