トップへ(mam-mam.net/)

MariaDB(MySQL)で使用できる主な正規表現関数

検索:

MariaDB(MySQL)で使用できる主な正規表現関数

MariaDB(MySQL)で使用できる主な正規表現関数をSQLで解説

str REGEXP pat 又は str RLIKE pat
文字列が正規表現と一致するかどうか
文字列「str」が正規表現「pat」と一致する場合は 1、一致しない場合は 0 を返す。
SELECT '654-0101' REGEXP '[0-9]{3}-[0-9]{4}' AS col;
+-----+
| col |
+-----+
|   1 |
+-----+
str NOT REGEXP pat
REGEXP()の否定で、文字列が正規表現と一致しないかどうか
文字列「str」が正規表現「pat」と一致する場合は 0、一致しない場合は 1 を返す。
SELECT '654-0101' NOT REGEXP '[0-9]{3}-[0-9]{4}' AS col;
+-----+
| col |
+-----+
|   0 |
+-----+
REGEXP_INSTR(str, pat)
文字列が正規表現と一致する部分文字列の開始インデックス
文字列「str」が正規表現「pat」と一致する部分文字列の開始インデックスを返す。
一致がない場合は 0 を返す。
SELECT REGEXP_INSTR('abcDEFG', 'cde') AS col;
+-----+
| col |
+-----+
|   3 |
+-----+

-- 大文字小文字を区別する
SELECT REGEXP_INSTR('abcDEFG', '(?-i)cde') AS col;
+-----+
| col |
+-----+
|   0 |
+-----+

-- 大文字小文字を区別しない
SELECT REGEXP_INSTR('abcDEFG', '(?i)cde') AS col;
+-----+
| col |
+-----+
|   3 |
+-----+
REGEXP_REPLACE(str, pat, repl)
正規表現に一致する部分文字列の置換
文字列「str」から正規表現パターン「pat」にマッチしたら「repl」に置換して返す
SELECT REGEXP_REPLACE('abcDEFG', 'cde', 'Z') AS col;
+-------+
| col   |
+-------+
| abZFG |
+-------+

-- 大文字小文字を区別する
SELECT REGEXP_REPLACE('abcDEFG', '(?-i)cde', 'Z') AS col;
+---------+
| col     |
+---------+
| abcDEFG |
+---------+

-- 大文字小文字を区別しない
SELECT REGEXP_REPLACE('abcDEFGcde', '(?i)cde', 'Z') AS col;
+--------+
| col    |
+--------+
| abZFGZ |
+--------+
REGEXP_SUBSTR((str, pat, repl))
正規表現に一致する部分文字列を返します
SELECT REGEXP_SUBSTR('abcDEFabcDEF', 'cde') AS col;
+------+
| col  |
+------+
| cDE  |
+------+

-- 大文字小文字を区別する
SELECT REGEXP_SUBSTR('abcDEFabcDEF', '(?-i)cde') AS col;
+------+
| col  |
+------+
|      |
+------+

-- 大文字小文字を区別しない
SELECT REGEXP_SUBSTR('abcDEFabcDEF', '(?i)cde') AS col;
+------+
| col  |
+------+
| cDE  |
+------+
MariaDB(MySQL)のサンプルSQL一覧に戻る