我正在使用一个包含带有“\uXXXX”的表达式的正则表达式数据库,这当然会破坏 PHP PCRE。
那么,两个部分的问题,有没有办法告诉 PCRE 接受这些序列?
我解决了这个问题,幸运的是,这只是一个序列,方法是:
$regx = str_ireplace('\u00a7', '\xa7', $regx);
但是当我试图这样做时:
$regx = preg_replace("/\\u(\w+)/i", "\x$1", $regx);
我仍然得到 -
警告:preg_replace() [function.preg-replace]:编译失败:PCRE 在偏移量 1 处不支持 \L、\l、\N{name}、\U 或 \u
它需要双重转义 \u => \\\\u,而不仅仅是 \\u,为什么/有更好的方法?注意:我实际上必须做同样的事情,更重要的是,才能将正确的字符串放入这篇文章。
更新:在我们的服务器上运行 5.3.3