ホームページ  >  記事  >  データベース  >  MySQL は正規表現をどのように使用しますか? (コード例)

MySQL は正規表現をどのように使用しますか? (コード例)

青灯夜游
青灯夜游オリジナル
2019-01-12 13:27:0110699ブラウズ

MySQL は、正規表現と正規表現演算子に基づく別のパターン マッチング操作をサポートしています。以下の記事では、MySQL の正規表現 (Regexp) について紹介し、MySQL での正規表現 (Regexp) の使用方法を例を通して簡単に紹介します。

MySQL は正規表現をどのように使用しますか? (コード例)

MySQL 正規表現 (Regexp) の簡単な紹介

#1 を提供します。これは、データベース システム用の強力な検索ユーティリティの実装に役立つ強力かつ柔軟なマッチング パターンを提供します。

2. regexp は正規表現のパターン マッチングを実行するときに使用される演算子であり、rlike は同義語です。

3. パターン マッチングを実行する際の柔軟性と制御を向上させる多数のメタキャラクターもサポートしています。

4. バックスラッシュはエスケープ文字として使用されます。二重バックスラッシュが使用されている場合、それらはパターン マッチングでのみ考慮されます。

5. 大文字と小文字は区別されません。

次は、REGEXP 演算子で使用できる通常のパターンの表です。 【おすすめの関連ビデオ チュートリアル: MySQL ビデオ チュートリアル ]

#? 先行する 0 個または 1 個の部分式 (文字列) と一致します。 # 先行する 0 個以上の部分式 (文字列) と一致します。 先行する 1 つ以上の部分式 (文字列) と一致します。 [abc] 角括弧内にリストされた任意の文字と一致します。 [^abc] 角括弧内にリストされていない任意の文字と一致します。 [A-Z] は任意の大文字と一致します。 [a-z] は任意の小文字と一致します。 [0-9] 0 ~ 9 の任意の数値と一致します。 [[:0831a0f262871cde70e43ae472cab901:]][:class:]
パターン 説明 (特に一致する内容)
^ 文字列の先頭と一致します。
$ 文字列の終了位置と一致します。
. 「\n」を除く任意の 1 文字と一致します。
[...] は、それに含まれる任意の文字と一致します。
[^...] 含まれていない任意の文字と一致します。
単語の末尾と一致します。
は文字クラスに一致します。つまり、[:alpha:] は文字に一致し、[:space:] はスペースに一致します。[:punct] :] は句読点に一致し、[:upper:] は大文字に一致します。
p1|p2|p3 任意のパターン (p1、p2、または p3) に一致します
#{n} n 個の要素の前にある n 個の部分式と一致します
{m,n} 要素の前にある m 個から n 個の部分式と一致します

使用例:

以下では、簡単な例を使用して MySQL 正規表現 (Regexp) の使用を紹介します。 )。

1. 文字列の先頭 (^) と一致します:

名前フィールドが「sa」で始まるすべてのデータと一致します (例: Sample-sam、samarth)。 。

SELECT name FROM student_tbl WHERE name REGEXP '^sa';

2. 文字列 ($) の末尾に一致します:

名前フィールドが「on」で終わるすべてのデータに一致します (例: Norton、merton)。

SELECT name FROM student_tbl WHERE name REGEXP 'on$';

3. 先頭の文字列の 0 個または 1 個の部分式 (?) と一致します。

タイトル フィールドに「com」が含まれるすべてのデータと一致します。例: Comedy 、 ラブコメ。

SELECT title FROM movies_tbl WHERE title REGEXP 'com?';

4. 任意のパターン p1 または p2 または p3 に一致します (p1 | p2 | p3):

名前フィールドに「be」または「ae」が含まれるすべての名前に一致します。 ' データ、例: Abel、Baer。

SELECT name FROM student_tbl WHERE REGEXP 'be|ae' ;

5. 角括弧 ([abc]) の間にリストされている任意の文字と一致します。

名前フィールドに「j」または「z」データが含まれるすべての名前と一致します。例: ローレンツ、ラージス。

SELECT name FROM student_tbl WHERE REGEXP '[jz]' ;

6. 「a」と「z」の間の任意の小文字 ([a-z]) ([a-z] および (.)) と一致します:

#Match名前フィールドの最初の桁に「b」と「g」の範囲の文字が含まれ、2 番目の桁に任意の文字が含まれ、3 番目の桁に文字「a」が含まれるすべての文字列データ。例: Tobias、sewall 。

任意の 1 文字 (.)

SELECT name FROM student_tbl WHERE REGEXP '[b-g].[a]' ;

7 と一致します。角括弧 ([^ abc]) の間にリストされていない任意の文字と一致します。

と一致します。 「j」または「z」を含まないすべての名前。例: ナートン、セウォール。

SELECT name FROM student_tbl WHERE REGEXP '[^jz]' ;

8. 単語の末尾の部分文字列 [[:>:]]

の文字「ack」で終わるすべてのデータと一致します。タイトル フィールド、例: 黒。

SELECT title FROM movies_tbl WHERE REGEXP 'ack[[:>:]]';

9. 単語の先頭の部分文字列 [[:<:]]

の文字「for」で始まるすべてのデータと一致します。 title フィールド、例: サラ・マーシャルを忘れています。

SELECT title FROM movies_tbl WHERE title REGEXP &#39;[[:<:]]for&#39;;

10. 文字クラス [:class:]:

ie [: lower:] - 小文字、[:digit:] - 数字など。

タイトル フィールドにアルファベット文字のみを含むすべてのデータと一致します (例: ストレンジャー シングス、アベンジャーズ)。

SELECT title FROM movies_tbl WHERE REGEXP &#39;[:alpha:]&#39; ;

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がMySQL は正規表現をどのように使用しますか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。