5

Mysql の正規表現が Unicode をサポートしているかどうか知っている人はいますか? 私はいくつかの調査を行ってきましたが、ブログなどの大部分は、問題があるか、サポートされていないことを示しているようです。では、Unicode パターン マッチングには LIKE を使用し、ASCII 拡張パターン マッチングには regexp を使用するのが最善でしょうか?

文字列の先頭または末尾で一致を検索できるというアイデアは気に入っていますが、正規表現が Unicode をサポートしていない場合、テキストが Unicode の場合、これは困難になる可能性があります。

4

3 に答える 3

7
  1. Mysql の正規表現が Unicode をサポートしているかどうか知っている人はいますか? 私はいくつかの調査を行ってきましたが、ブログなどの大部分は、問題があるか、サポートされていないことを示しているようです。

    正規表現の下に記載されているように:

    警告

    REGEXPand演算子はRLIKEバイト単位で機能するため、マルチバイトセーフではなく、マルチバイト文字セットで予期しない結果が生じる可能性があります。さらに、これらの演算子は文字をバイト値で比較するため、特定の照合で等しいと見なされたとしても、アクセント付き文字は等しいとは見なされない場合があります。

  2. Unicode パターン マッチングには LIKE を使用し、ASCII 拡張パターン マッチングには regexp を使用するのが最善でしょうか?

    はい、それが一番でしょう。

  3. 文字列の先頭または末尾で一致を検索できるというアイデアは気に入っていますが、正規表現が Unicode をサポートしていない場合、テキストが Unicode の場合、これは困難になる可能性があります。

    次の方法でもそれを行うことができLIKEます:

    WHERE foo LIKE 'bar%'
    

    と:

    WHERE foo LIKE '%bar'
    
于 2013-01-16T10:35:59.180 に答える