我有以下 PHP 代码:
$search = "foo bar que";
$search_string = str_replace(" ", "|", $search);
$text = "This is my foo text with qué and other accented characters.";
$text = preg_replace("/$search_string/i", "<b>$0</b>", $text);
echo $text;
显然,“que”与“qué”不匹配。我怎样才能改变这一点?有没有办法制作preg_replace
忽略所有口音?
必须匹配的字符(西班牙语):
á,Á,é,É,í,Í,ó,Ó,ú,Ú,ñ,Ñ
我不想在应用正则表达式之前替换所有重音字符,因为文本中的字符应该保持不变:
“这是我的foo文本与qué以及其他带重音的字符。”
and not
“这是我的foo文本与que以及其他带重音的字符。”
我最终使用的解决方案:
$search_for_preg = str_ireplace(["e","a","o","i","u","n"],
["[eé]","[aá]","[oó]","[ií]","[uú]","[nñ]"],
$search_string);
$text = preg_replace("/$search_for_preg/iu", "<b>$0</b>", $text)."\n";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)