【发布时间】:2011-05-09 19:56:16
【问题描述】:
我有以下 JSON 编码的字符串:
$json = '"|\t|\n|\\\u0027|\\\u0022|"';
转义所有除了\\\u0022 或\\\u0027 之外的(已经)转义的字符/代码点的最有效方法是什么?我想使用preg_replace()带有负前瞻正则表达式,但它没有按我预期的那样工作,输出应该是:
$json = '"|\\\t|\\\n|\\\u0027|\\\u0022|"';
我迷失在 JSON-PHP-PCRE 逃逸的海洋中,有人可以帮帮我吗?
【问题讨论】:
-
你确定这是你想要的输出吗?这对我来说不太有意义,我本来期望像
|\\t|\\n...这样的东西。你到底想做什么? -
@Justin:是的,我在解码之前使用
stripslashes(),所以效果应该和你的完全一样,从转义的\u002[27]代码点中删除转义是我的目标。 @Marcel,@Unkwntech:你为什么这么说?在我看来很合适。 -
哇,你说得对。我认为它至少需要一个键,但当然你可以简单地分配一个字符串而不是一个对象。
标签: php regex escaping preg-replace negative-lookahead