加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式忽略口音? PHP

发布时间:2020-12-14 06:27:35 所属栏目:百科 来源:网络整理
导读:是否有一个无法使用重音的正则表达式? 例如: preg_replace("/$word/i","b$word/b",$str); 正则表达式中的“i”是忽略大小写敏感的,但是还是有比例的匹配 java与Jáv?? 我尝试制作$str的副本,将内容更改为无重音字符串,并找到所有出现的索引.但是,两个字符
是否有一个无法使用重音的正则表达式?

例如:

preg_replace("/$word/i","<b>$word</b>",$str);

正则表达式中的“i”是忽略大小写敏感的,但是还是有比例的匹配
java与Jáv??

我尝试制作$str的副本,将内容更改为无重音字符串,并找到所有出现的索引.但是,两个字符串的索引似乎是不同的,尽管它只是没有重音.

(我做了一个研究,但我可以找到的是如何从字符串中删除重音)

我不认为有这样的一种方式.这将取决于区域设置,并且您可能首先需要一个“/ u”开关来在模式字符串中启用UTF-8.

我可能会这样做.

function prepare($pattern)
{
   $replacements = Array("a" => "[áà?a]","e" => "[éè?ê]" ...);
   return str_replace(array_keys($replacements),$replacements,$pattern);  
}

pcre_replace("/(" . prepare($word) . ")/ui","<b>1</b>",$str);

在你的情况下,索引是不同的,因为除非你使用mb_string,否则你可能正在处理每个字符使用多个字节的UTF-8.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读