我在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");
产生输出
'à'
'Ã '
'á'
'á '
'Ã '
'Ã '
为什么在某些情况下用'Ã'代替'à'?
我的正则表达式不是只用单个空格代替水平出现的空白字符,而让其他所有字符都留着吗?