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 | +------+