preg_replace()在à上包含\ h的正则表达式的异常行为

时间:2019-06-12 20:34:28

标签: php regex preg-replace

我在PHP preg_replace()中看到以下意外行为:

运行

echo("'".preg_replace('#\h\h+#', ' ', 'à')."'\n");
echo("'".preg_replace('#\h\h+#', ' ', 'à ')."'\n");
echo("'".preg_replace('#\h\h+#', ' ', 'á')."'\n");
echo("'".preg_replace('#\h\h+#', ' ', 'á ')."'\n");
echo("'".preg_replace('#\h+#', ' ', 'à ')."'\n");
echo("'".preg_replace('#\h#', ' ', 'à ')."'\n");

产生输出

'à'
'Ã '
'á'
'á '
'Ã '
'Ã  '

为什么在某些情况下用'Ã'代替'à'?

我的正则表达式不是只用单个空格代替水平出现的空白字符,而让其他所有字符都留着吗?

0 个答案:

没有答案