PHP preg_replace()错误禁止Unicode代码点

时间:2014-02-10 00:01:48

标签: php regex unicode

我在使用第三方API时出现问题,这会引发以下PHP错误

preg_replace(): Compilation failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 42  in /.../SoapClient.php on line 20

有人可以帮我低估这个正则表达式的含义,

[\x{0}-\x{8}\x{B}-\x{C}\x{E}-\x{1F}\x{D800}-\x{DFFF}]

这是它试图匹配的值

5f42caa3-1f41-4ff3-8b6c-3f79e45ed0f1

这是API中的代码位,

$result = preg_replace('/[\x{0}-\x{8}\x{B}-\x{C}\x{E}-\x{1F}\x{D800}-\x{DFFF}]/u', '', $result);

更新

顺便说一下,我在互联网上发现“Re”中的“D”代表“E”会修复这个问题,并且超越它确实解决了这个问题,

新RegEx,

 [\x{0}-\x{8}\x{B}-\x{C}\x{E}-\x{1F}\x{E800}-\x{EFFF}]

但我不知道它是否真的有效,所以我的问题仍然有效。

0 个答案:

没有答案