この記事は主に SQL 正規表現と mybatis で正規表現を使用する方法を紹介します。非常に優れており、必要な友人は参考にしてください。
mysql が提供する他の種類のパターン マッチングは拡張正規表現を使用しています。 。
そのようなパターンの一致をテストするときは、REGEXP 演算子と NOT REGEXP 演算子 (または同義語である RLIKE と NOT RLIKE) を使用します。
正規表現を拡張するいくつかの文字は次のとおりです:
"." は任意の 1 文字に一致します。
文字クラス「[...]」は、角括弧内の任意の文字と一致します。たとえば、「[abc]」は「a」、「b」、または「c」に一致します。文字範囲に名前を付けるには、「-」を使用します。 「[a-z]」は任意の小文字と一致し、「[0-9]」は任意の数字と一致します。
「 * 」は、その前にある 0 個以上の内容と一致します。たとえば、「x*」は任意の数の「x」文字に一致し、「[0-9]*」は任意の数の数字に一致し、「.*」は任意の数に一致します。
正規表現では大文字と小文字が区別されますが、必要に応じて、文字クラスを使用して両方の記述を一致させることができます。たとえば、「[aA]」は小文字または大文字の「a」に一致し、「[a-zA-Z]」はいずれかの方法で書かれた任意の文字に一致します。
パターンは、テスト対象の値のどこかに出現する場合に一致します (SQL パターンは、値全体と一致する限り一致します)。
テスト対象の値の先頭または末尾に一致するようにパターンを配置するには、パターンの先頭に「^」を使用するか、パターンの末尾に「$」を使用します。
拡張正規表現がどのように機能するかを説明するために、上記の LIKE クエリを REGEXP を使用して以下に書き換えます:
「b」で始まる名前を検索するには、「^」を使用して名前の先頭と一致させ、「[ bB] " は小文字または大文字の "b" と一致します:
mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";
Myabtis で正規表現を自分で使用してください
<select id="provinceLists" resultMap="BaseCountry" parameterType="java.lang.String"> select code,label from institution where admlvl = '2' and code REGEXP "[0-9]*\.[0-9]*" </select> <select id="cityLists" resultMap="BaseCountry" parameterType="java.lang.String"> select code,label from institution where admlvl = '3' and code REGEXP "[0-9]*\.[0-9]*\.[0-9]*" </select> <select id="countyLists" resultMap="BaseCountry" parameterType="java.lang.String"> select code,label from institution where admlvl = '4' and code REGEXP "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"; </select>
以上がSQL 正規表現と mybatis で使用される正規表現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。