我有一个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";