正規表現の紹介のMysql

MySQLの正規表現


テキストに一致する、テキストはパターンと比較されます

例えば:

select name_s
from pros
where name_s regexp '1000' //表示包含1000的所有行 s1000也是
order by name_s;
  • .これは、任意の言語の文字の意味にマッチする正規表現です
    select *
    from emp
    where name_s regexp 'A.' //不区分大小写
    order by name_s;
    
    where name_s regexp binary 'a.' //区分大小写
    

1.またはmatch

二つの文字列の1を検索するには(私は、文字列の2種類があります) |

select * from emp where name_s REGEXP 'a|c' ORDER by name_s; ///有a或有c

いくつかの文字の2のマッチング1

これは、単一の文字に一致します。あなたがしたい場合は、特定の文字が必要です[]

select prod_name from products
WHERE prod_name REGEXP '[123] Ton' # 从123中的任意一个 类似[1|2|3]
select prod_name from products
WHERE prod_name REGEXP '[^123] Ton' # 除了123以外

select prod_name from products
WHERE prod_name REGEXP '1|2|3 Ton' #注意这里是 1 | 2 | 3 Ton

前記マッチング範囲

  • -代替はありません。
[1-3] = [123] 这两个相同
[a-z] = [a...z]

4.使用の特殊文字

.私たちは言葉を使いたいです

  • \\これはリーダーになることができます
select * from products 
WHERE prod_name REGEXP '\\.'
select * from products 
WHERE prod_name REGEXP '[\\t]' --空格
カテゴリ 説明
[:すくい] 任意の文字と数字([-ZA-Z0-9]付)
[:アルファ:] ([-ZA-Z]を有する)任意の文字
[:ブランク:] 空白やタブ([\ t]を有します)
[:CNTRL:] ASCII制御文字(31と127 ASCII 0)
[:桁:] ([0-9]を有する)任意の数の
[:グラフ:] そして[:印刷:]同じですが、スペースが含まれていません。
[下部:] ([AZ]を有する)任意の小文字
[:印刷:] 任意の印刷可能な文字
【ポイント:] どちらも[:alnum:]ないで[:CNTRL:]任意の文字ではありません
[:スペース:] (と[F \ \ n \ R \ T \ V])スペースを含む任意の空白文字
[:アッパー:] 任意の大文字(と[AZ])
[:XDIGIT] ([-FA-F0-9]を有する任意の16進数字
メタキャラクタ 説明
+ 一つまたは複数のマッチ({1}に等しいです)
* ゼロまたはそれ以上の一致
{N} マッチの指定された数
{N} マッチの指定された数より少ないです
{N、M} マッチング範囲の数(M 255)

例:

SELECT * from products
WHERE prod_name Regexp '[[:digit:]]{4}'
order by prod_name

2行を結果のクエリ!

PROD_ID vend_id PROD_NAME prod_price PROD_DESC
JP1000 1005 Jetpackの1000年 35 単一の使用を意図Jetpackの1000年、
JP2000 1005 ジェットパック2000 55 Jetpackの2000年、マルチユース
モード 説明
^ 文字列の先頭にマッチします。オブジェクトは正規表現Multilineプロパティを設定している場合、また、後または「\ rを」^「\ n」の位置と一致します。
$ 文字列の入力端にマッチします。オブジェクトは正規表現Multilineプロパティを設定されている場合は、$も「\ N」または「\ r」が前の位置と一致しました。
「\ n」はある以外の任意の1文字に一致します。一致させるために「\ n」の使用などの任意の文字を含め、「[。\ N]」モードがあります。
[...] 文字のセット。付属の任意の文字と一致します。例えば、「[abc]は」「普通」が「」に一致します。
[^ ...] 負の文字セット。含まれていない任意の文字がマッチします。たとえば、 '[^ abc]は' "プレーン" 'P' にマッチ。
* 先行部分式の0回以上一致します。例えば、ZO *「Z」と「動物園」にマッチします。* {0}に相当します。
+ 直前の部分正規表現の1回以上一致します。たとえば、「ZO +」は「ZO」と「動物園」と一致しますが、「Z」に一致することはできません。+ {1}と等価です。
{N} nは負でない整数です。決定したn回のマッチング。例えば、O「{2}」「O」の「ボブ」と一致しないが、二つのOで「食物」と一致することができます。
{N、M} mおよびnは、非負整数、N <= Mです。少なくともn回一致し、m回まで一致。
SELECT *
from products
WHERE prod_name
Regexp '\\([0-9] stic.{0,1}\\)'
order by prod_name
公開された74元の記事 ウォン称賛29 ビュー20000 +

おすすめ

転載: blog.csdn.net/ClonH/article/details/104613351