記事ディレクトリ
MySQL データベース正規表現はどのように一致するのでしょうか?MySQL 正規表現のような使い方
MySQL 正規表現
前の章では、MySQLが のように ...% あいまい一致を実行します。
MySQL は他の正規表現のマッチングもサポートしています。 REGEXP 演算子は、MySQL で正規表現のマッチングに使用されます。
PHP または Perl を知っていれば、MySQL の正規表現マッチングはそれらのスクリプトに似ているため、これは非常に簡単です。
次の表の正規表現パターンは、REGEXP 演算子で使用できます。
| モード | 描述 |
|---|---|
| ^ | 入力文字列の先頭と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、^ は '\n' または '\r' の後の位置にも一致します。 |
| $ | 入力文字列の末尾に一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、$ は '\n' または '\r' の前の位置にも一致します。 |
| . | 「\n」を除く任意の 1 文字に一致します。 '\n' を含む任意の文字を一致させるには、'[.\n]' のようなパターンを使用します。 |
| [...] | 文字のコレクション。含まれている文字のいずれかと一致します。たとえば、「[abc]」は「pl」に一致します。ai「n」。 |
| [^…] | 否定文字のセット。文字列に含まれていない任意の文字と一致します。たとえば、「[^abc]」は「plain」の「p」と一致します。 |
| 1 2 3 XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX XNUMX 続き | p1 または p2 または p3 に一致します。たとえば、「z|food」は「z」または「food」に一致します。 「(z|f)ood」は「zood」または「food」に一致します。 |
| * | 直前の部分式と 0 回以上一致します。たとえば、zo* は「zoo」だけでなく「z」にも一致します。 * {XNUMX,} と同等です。 |
| + | 直前の部分式と 1 回以上一致します。たとえば、「zo+」は「zo」や「zoo」に一致しますが、「z」には一致しません。 + は {XNUMX,} と同等です。 |
| {NS} | n は負でない整数です。特定の回数一致します。たとえば、「o{2}」は「Bob」の「o」とは一致しませんが、「food」の XNUMX つの o とは一致します。 |
| {n、m} | m と n は両方とも負でない整数です(n <= m)。少なくとも n 回、最大 m 回一致します。 |
インスタンス
上記の正規の要件を理解した後、独自のニーズに応じて正規表現を使用して SQL ステートメントを記述できます。以下に、理解を深めるためにいくつかの小さな例 (テーブル名: person_tbl) を示します。
名前フィールドで「st」で始まるすべてのデータを検索します。
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
名前フィールドが「ok」で終わるすべてのデータを検索します。
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
名前フィールドに文字列「mar」を含むすべてのデータを検索します。
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
名前フィールド内で、母音文字で始まるか、文字列「ok」で終わるすべてのデータを検索します。
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Hope Chen Weiliang ブログ ( https://www.chenweiliang.com/ ) 共有された「MySQL データベースの正規表現を一致させる方法? MySQL regexp のような使用法」が役立つかもしれません。
この記事のリンクを共有することを歓迎します。https://www.chenweiliang.com/cwl-492.html
さらに多くの隠されたトリックのロックを解除するには、Telegram チャンネルにぜひご参加ください。
気に入ったらシェアして「いいね!」してください!あなたのシェアと「いいね!」が私たちの継続的なモチベーションです。