regexp_extract_all
説明
ターゲット文字列 (str) から正規表現パターン (pattern) に一致し、pos で指定された正規表現グループインデックスに対応するすべての部分文字列を抽出します。この関数は配列を返します。
正規表現では、グループは括弧 () で囲まれ、左から右に開く括弧を数えて1から始まる番号が付けられます。例えば、([[:lower:]]+)C([[:lower:]]+) は大文字 C の左または右側にある小文字を一致させるためのものです。このパターンには2つのグループが含まれています。C の左側の ([[:lower:]]+) が最初のグループで、C の右側の ([[:lower:]]+) が2番目のグループです。
パターンは str の一部を完全に一致させる必要があります。一致が見つからない場合は、空の文字列が返されます。
この関数はバージョン3.1.10からサポートされています。
構文
ARRAY<VARCHAR> regexp_extract_all(VARCHAR str, VARCHAR pattern, BIGINT pos)
パラメータ
- 
str: 一致させる文字列。
- 
pattern: 部分文字列を一致させるために使用される正規表現パターン。
- 
pos:patternは複数のグループを含むことがあります。posは抽出する正規表現グループを示します。
戻り値
VARCHAR 要素で構成される ARRAY を返します。
例
-- パターンのグループ1に一致するすべての文字を返します。
MySQL > SELECT regexp_extract_all('AbCdE', '([[:lower:]]+)C([[:lower:]]+)', 1);
+-------------------------------------------------------------------+
| regexp_extract_all('AbCdE', '([[:lower:]]+)C([[:lower:]]+)', 1)   |
+-------------------------------------------------------------------+
| ['b']                                                             |
+-------------------------------------------------------------------+
-- パターンのグループ2に一致するすべての文字を返します。
MySQL > SELECT regexp_extract_all('AbCdExCeF', '([[:lower:]]+)C([[:lower:]]+)', 2);
+---------------------------------------------------------------------+
| regexp_extract_all('AbCdExCeF', '([[:lower:]]+)C([[:lower:]]+)', 2) |
+---------------------------------------------------------------------+
| ['d','e']                                                           |
+---------------------------------------------------------------------+
キーワード
REGEXP_EXTRACT_ALL,REGEXP,EXTRACT