折雨的天空

博客介绍:本博客当前共有文章【968】篇,总阅读量【5,161,495】次,第一篇博客发表于【2011年04月06日 10时34分】,距今已【4980】天,感谢您的使用!

您的位置:折雨的天空 >php开发> php匹配中文标点后续,错误PCRE does not support \L, \l, \N, \P,

php匹配中文标点后续,错误PCRE does not support \L, \l, \N, \P,

网上很多写的匹配中文用\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,

奖励一下

取消

分享不易,烦请有多多打赏,如您也困难,点击右边关闭即可!

扫码支持
扫码打赏,5元,10元,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

-秒后自动关闭,如已打赏,或者不愿打赏,请点击右上角关闭图标。

发表评论

路人甲 表情
看不清楚?点图切换