0

上記のコード

preg_match('~\b(rain|dry|certain|clear)\b~i',$string);

それは魅力のように機能しますが、強調された文字を含む単語を検索しているときは機能しません。誰か助けてくれませんか

4

1 に答える 1

0

技術的には、a と á と à はすべて、インタープリターにとって異なる文字です。それらは異なってエンコードされており、どのエンコーディングが「類似した」文字を表しているかを知る方法はありません (一部の言語では、アクセント付きの文字は根本的に異なる文字です)。したがって、一致させたいすべてのバリアントを含める必要があります。ただし、文字列内の実際のオフセットが必要な場合は、問題が発生する可能性があります。これは、UTF-8 文字列の場合、オフセットは文字ではなくバイトで指定されるためです。

キャラクターのすべてのバージョンを含める方法の例については、この SO の質問を参照してください。

また、間違ったオフセットで問題が発生した場合に備えて、このバグ レポートを参照してください。

于 2012-09-20T19:19:00.243 に答える