如何为重音字符制作preg_replace

时间:2016-11-24 11:30:17

标签: php regex

我试图在php中替换一些重音字符。首先,我使用preg_match来检测此类(及其正在工作)的字符,然后preg_replace将其替换为另一个字符。在我的情况下,我尝试将/[é]|[è]/替换为'e'

 if(preg_match('/[é]|[è]/',$adress)){
        preg_replace('/[é]|[è]/','e',$adress);
 }

所以任何替代方案或其他解决方案。

1 个答案:

答案 0 :(得分:0)

在您的代码中,变量$adress按值传递给preg_replace 。这条线

preg_replace('/[é]|[è]/','e',$adress);

实际上替换了 $adress变量的临时副本中的字符。但结果未被使用。

如果要修改它,则应将preg_replace的结果分配给它:

$adress = preg_replace('/[éè]/u', 'e', $adress);

请注意使用u标志。另外,我稍微优化了原始正则表达式。

或者,使用str_replace。它不被视为“多字节”,但它实际上可用于此类替换:

$adress = str_replace(['é', 'è'], 'e', $adress);

P.S。:考虑将$adress重命名为$address