regexp_extract_all
説明
正規表現パターン (pattern) に一致し、pos で指定された正規表現グループインデックスに対応するターゲット文字列 (str) からすべての部分文字列を抽出します。この関数は配列を返します。
正規表現では、グループは括弧 () で囲まれ、左から右に開く括弧を数えて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