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