网上很多写的匹配中文用\u,实际上会报错。
具体的google一下就行了。
然后,网上资料是将\u改为\x
但这个时候,又会报
preg_replace(): Compilation failed: character value in \x{} or \o{} is too large
而且,还没找到好的应对办法。
那么如何去匹配呢。
网上另外的方案是,将标点符号url编码以后,直接写到preg的正则中,如:
%7E|%60|%21|%40|%23|%24|%25|%5E|%26|%27|%2A|%28|%29|%2B|%7C|%5C|%3D|\-|_|%5B|%5D|%7D|%7B|%3B|%22|%3A|%3F|%3E|%3C|%2C|\.|%2F|%A3%BF|%A1%B7|%A1%B6|%A1%A2|%A1%A3|%A3%AC|%7D|%A1%B0|%A3%BA|%A3%BB|%A1%AE|%A1%AF|%A1%B1|%A3%FC|%A3%BD|%A1%AA|%A3%A9|%A3%A8|%A1%AD|%A3%A4|%A1%A4|%A3%A1 完整程序如下: $keyword='广’州;海,鲜。餐,厅 '; $keyword=urlencode($keyword);//将关键字编码 $keyword=preg_replace("/(%7E|%60|%21|%40|%23|%24|%25|%5E|%26|%27|%2A|%28|%29|%2B|%7C|%5C|%3D|\-|_|%5B|%5D|%7D|%7B|%3B|%22|%3A|%3F|%3E|%3C|%2C|\.|%2F|%A3%BF|%A1%B7|%A1%B6|%A1%A2|%A1%A3|%A3%AC|%7D|%A1%B0|%A3%BA|%A3%BB|%A1%AE|%A1%AF|%A1%B1|%A3%FC|%A3%BD|%A1%AA|%A3%A9|%A3%A8|%A1%AD|%A3%A4|%A1%A4|%A3%A1)+/",'',$keyword); $keyword=urldecode($keyword);//将过滤后的关键字解码 echo $keyword; //输出结果:广州海鲜餐厅。
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《php匹配中文标点后续,错误PCRE does not support \L, \l, \N, \P,》
发表评论