在这种情况下preg_replace或mb_ereg_replace?

时间:2011-12-03 20:21:33

标签: php unicode utf-8 preg-replace multibyte

我使用此RegEx来匹配Unicode中的空格:

/^[\pZ\pC]+|[\pZ\pC]+$/u

我甚至不确定它的作用,但似乎有效。现在,在这种情况下,哪个功能更适用,为什么?

$str = preg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $str);

$str = mb_ereg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $str);

1 个答案:

答案 0 :(得分:3)

第一个有效。第二个没有。

再次尝试,mb_ereg_replace 实际支持这些Unicode字符转义。它不使用正则表达式分隔符。 (见Oniguruma

preg_replace使用PCRE正则表达式引擎,它支持两者。


无论如何,没有“更好”的应用程序。无论是否正常运作。