2017-05-07 103 views
1

我正在处理我的网站的自动完成功能。我有一个unicode问题:正则表达式搜索unicode字符串上的非unicode关键字

当用户键入关键字时,我从数据库中找到标题,然后插入标记以突出显示结果中的关键字。我用PHP preg_match函数替换keyword<mark>keyword</mark>。但我坚持下面的情况:

用户类型tieng anh,结果找到tiếng anh cho trẻ,我也想在结果中突出显示tiếng anh

其他示例,用户类型cong cu,结果为các công cụ digital marketingcông cụ应该是高亮显示。

请帮忙。

+0

您正在使用哪些正则表达式? – Manngo

+0

示例用户类型'''tieng anh''',我用过:'''preg_replace(“/(tieng | anh)/ ui”,“ $ 1”,$ title)''' –

+0

也许它可以帮助你解决类似问题的方法 - http://php.net/manual/en/function.soundex.php#84881 – splash58

回答

0

您可以使用preg_match('#key(word)#', $text, matches)var_dump($matches)

你会看到$matches[0]是整个字符串,$matches[1]是你想要的。

+0

我做到了,但是'''和'anng'''与''''tiếnganh'''不匹配 –

+0

尝试'ti(e |ế)ng'而不是'ti [eế] ng' – Sean

+0

如果我这样做,我必须处理太多的情况,因为我不知道用户类型,所以我必须分割成元音和辅音:( –