正则匹配时PHP对 特殊字符的转义要特别注意

json_decode($json_str,true)的时候如果 JSON字符串格式不规范 将无法等到 数组。

那么如何检验合法性呢?网络上有在线验证工具

那么      aa'bb 这样的单引号规范么? 答案是规范的
\nbbb  这样的呢,貌似不行,一些特殊的符号出现貌似也不行。
那么对于一整串的数组呢?得想法子过滤。于是问题来了。

$json = '"province":"\ng61.151.217.146","';
该正则/\\n.*61\.151\.217\.146/在在线工具上匹配 可成功。
但是PHP如下:
//$rt = preg_match('/\\n.*61\.151\.217\.146/',$json);
匹配没有效果。

于是要特别注意PHP对特殊字符的转义。下面才是正确的。

$json = preg_replace('/\\\\n.*61\.151\.217\.146/', "",$json);
posted @ 2016-05-26 20:08  Newman·Li  阅读(1829)  评论(0)    收藏  举报