用重音字母替换预置字符
我正在尝试在字符串中的名称后插入分隔符。但是,名称可以包含类似é
的字符$string = 'Test string';
$name = 'Tést';
$replacement = '$0<br />$1';
return preg_replace("/^$name/i", $replacement, $string);
我希望此邮件返回:
Test<br /> string
Tést也可以是这样的:Héllo、byé或naul
这应该是可能的,对吗?
提前感谢
解决方案
我使用类似的东西来校对口音:
$collate = [
"À-Æ" => "A", "à-æ" => "a", "Ç" => "C", "ç" => "c",
"È-Ë" => "E", "è-ë" => "e", "Ì-Ï" => "I", "ì-ï" => "i",
"Ñ" => "N", "ñ" => "n", "Ò-Ø" => "O", "ò-ø" => "o",
"ß" => "s", "Ù-Ü" => "U", "ù-ü" => "u", "Ý" => "Y", "ý" => "y"
];
$string = "Test string";
$name = "Tést";
foreach($collate as $from => $to) {
$name = preg_replace("/[".$from."]/", $to, $name);
}
// echo $name; => "Test"
return preg_replace("/^".$name."/", "$0<br />", $string);
// result: "Test<br /> string"
相关文章