我有一个serialize()来自外部来源的 PHP 字符串:
s:4:"0.00";s:4:"type";s:5:"price";s:3:"$20";s:12:"Foo "Bar" Baz";s:1:"y";
我需要替换"Bar"为"Bar"才能成功unserialize()。
我该如何使用preg_replace()来完成此操作?
我试过(?<!s:\d{1,4}:)("[0-9a-zA-Z ]+")了,但 PHP 抛出后视错误:后视断言在偏移 14 处不是固定长度
更新:这是我编的一个虚拟字符串。我错误地计算了字符......可以安全地假设计数是正确的......字符串实际上应该是:
s:4:"0.00";s:4:"type";s:5:"price";s:3:"$20";s:13:"Foo "Bar" Baz";s:1:"y";