我有一些格式错误的json,我需要修复(我无法修复源代码)
...
"productName": "Widget "Foo"",
"productVariation": "",
...
它应该是
...
"productName": "Widget \"Foo\"",
"productVariation": "",
...
看来我可以用preg找到引号内的内容。
/productName":\s*"(.*?)",\s*"productVariation/
我修复了其他json-errors woth preg_replace,但我无法弄清楚如何在匹配中转义引号。
答案 0 :(得分:0)
这有助于与泰迪熊交谈......
$s = preg_replace_callback('/(productName":\s*")(.*?)(",\s*"productVariation)/',
function ($matches) {
return $matches[1].addslashes($matches[2]).$matches[3];
},$s);