phpunicodeutf-8preg-replacemultibyte

preg_replace or mb_ereg_replace in this case?


I have this RegEx for matching whitespace in Unicode:

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

I'm not even sure of what it does, but it seems to work. Now, in this case, which function applies better and why?

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

or

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

Solution

  • The first one works. The second one doesn't.

    Tried it out again, mb_ereg_replace doesn't actually support those Unicode char escapes. And it doesn't use regex delimiters. (See Oniguruma)

    preg_replace uses the PCRE regex engine, which supports both.


    Anyway, there is no such thing as a "better" application. It's either functioning, or not.