4
为什么下面的代码对于不同的多字符串行为不同?多字节字符串和环视奇怪错误
echo preg_replace('@(?=\pL)@u', '*', 'م'); // prints: '*م' ✓
echo preg_replace('@(?=\pL)@u', '*', 'ض'); // prints: '*ض' ✓
echo preg_replace('@(?=\pL)@u', '*', 'غ'); // prints: '*�*�' ✗
echo preg_replace('@(?=\pL)@u', '*', 'ص'); // prints: '*�*�' ✗
它不会识别'غ'字符。恕我直言,它看起来像一个PCRE库中的错误,但作为PHP,很难说你是否需要启用某些东西...... – 2013-02-18 17:09:07
这工作正常:echo preg_replace('/(.+)/','* $ 1' ,'غ'); – 2013-02-18 18:06:25
奇怪的是,它似乎在旧版本中工作:http://3v4l.org/0Pq36 – deceze 2013-02-18 20:15:25