Php 正则表达式在unicode字符串上搜索非unicode关键字
我正在开发我的网站的自动完成功能。我对unicode有一个问题: 当用户键入关键字时,我从数据库中查找标题,然后插入标记以在结果上突出显示关键字。我使用PHPPhp 正则表达式在unicode字符串上搜索非unicode关键字,php,regex,Php,Regex,我正在开发我的网站的自动完成功能。我对unicode有一个问题: 当用户键入关键字时,我从数据库中查找标题,然后插入标记以在结果上突出显示关键字。我使用PHPpreg_match函数将关键字替换为关键字。但我坚持以下情况: 用户类型tieng anh,找到结果tiế吴安祖ẻ,我还想突出显示tiếng anh在结果中 另一个例子是,用户类型congcu,结果是cácôcụ 数字营销,科特迪瓦ụ应该是突出显示 请提供帮助。您可以使用preg_match('#关键字(单词)#',$text,match
preg_match
函数将关键字
替换为关键字
。但我坚持以下情况:
用户类型tieng anh
,找到结果tiế吴安祖ẻ代码>,我还想突出显示tiếng anh
在结果中
另一个例子是,用户类型congcu
,结果是cácôcụ 数字营销
,科特迪瓦ụ代码>应该是突出显示
请提供帮助。您可以使用preg_match('#关键字(单词)#',$text,matches)
和var_dump($matches)
您将看到$matches[0]
是整个字符串,而$matches[1]
是您想要的。您可以使用preg_match('#关键字(单词)#',$text,matches)
和var_dump($matches)
您将看到$matches[0]
是整个字符串,$matches[1]
是您想要的。您当前使用的正则表达式是什么?示例用户类型tieng anh
,我使用:preg_replace(“/(tieng | anh)/ui”,“$1”,“$title”)
也许它可以帮助您解决类似的问题-如果它只是用于突出显示,它可以在目标文本中搜索任何重音字符,并生成相应的搜索字符串。仅当目标字符串不是太多数据时才有意义。生成模式,例如用于tiế吴安祖ẻ cácông
谢谢@Bobblebble,这真的很有帮助。您目前使用的正则表达式是什么?示例用户类型tieng anh
,我使用:pregôu替换(“/(tieng | anh)/ui”,“$1”,$title)
也许它可以帮助您解决类似的问题——如果只是为了突出显示,它可以在目标文本中搜索任何重音字符,并生成相应的搜索字符串。仅当目标字符串不是太多数据时才有意义。生成模式,例如用于tiế吴安祖ẻ cácông
谢谢@Bobblebble,这真的很有帮助。我做了,但是tieng anh
与ti不匹配ếng anh
Tryti(e|ế)ng
而不是ti[eế]ng
如果我这样做,我必须处理太多的大小写,因为我不知道用户类型,所以我必须拆分为元音和辅音:(我这样做了,但tieng anh
与ti不匹配ếng anh
Tryti(e|ế)ng
而不是ti[eế]ng
如果我这样做,我必须处理太多的大小写,因为我不知道用户类型,所以我必须拆分为元音和辅音:(