2017-05-07 42 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

如果我這樣做,我必須處理太多的情況,因爲我不知道用戶類型,所以我必須分割成元音和輔音:( –