我试图在PHP中匹配整个UTF-8字。这就是我尝试这样做的方式:
<?php
$string = 'DS DAMAT TAKIM ELBİSE (GOLD)';
$search = 'takım elbise';
$replace = 'TakımElbise';
$result = mb_eregi_replace('/\b'.$search.'\b/ui', $replace, $string);
echo $result;
echo preg_match('/\b'.$search.'\b/ui', $replace);
?>
但它不起作用。可能是什么问题?
注意: 我尝试在脚本开头添加这些行:
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
没有结果。
答案 0 :(得分:0)
怎么样:
$string = 'DS DAMAT TAKIM ELBİSE (GOLD)';
// ^__ this isn't an I
$search = 'takım elbİse';
// ^__ this isn't an I
$replace = 'TakımElbise';
$result = preg_replace("/\b$search\b/ui", $replace, $string);
echo $result;
我只是将搜索字符串中的i
更改为İ
。您可能希望使用小写字母(我的键盘上没有)
答案 1 :(得分:0)
请参阅此处的评论:http://php.net/manual/en/function.mb-ereg-replace.php
与preg_replace
不同,mb_ereg_replace
不使用分隔符
preg_replace
的示例:
$data = preg_replace("/[^A-Za-z0-9\.\-]/","",$data);
mb_ereg_replace
的示例:
$data = mb_ereg_replace("[^A-Za-z0-9\.\-]","",$data);
另外,请勿使用ui标志。