2017-05-07 2 views
1

私は自分のウェブサイトのオートコンプリート機能を開発中です。私はユニコードに問題があります:RegExユニコード文字列の非ユニコードキーワード

ユーザーがキーワードを入力すると、データベースからタイトルを見つけて、キーワードを挿入して結果にキーワードを強調表示します。私は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 marketing,cô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

あなたが$matches[0]は、文字列全体で表示されますvar_dump($matches)

preg_match('#key(word)#', $text, matches)を使用することができ、かつ$matches[1]はあなたが望むものです。

+0

私はそれをしましたが、 '' tieng anh''と ''tiếnganh''は一致しません –

+0

'ti [eế] ng'の代わりに' ti(e |ế)ng'を試してください – Sean

+0

私はユーザータイプがわからないので、あまりにも多くのケースを処理する必要があるので、母音と子音に分割する必要があります。 –

関連する問題