正则匹配时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);