メインコンテンツまでスキップ
バージョン: Latest-3.4

regexp_extract_all

ターゲット文字列 (str) から正規表現パターン (pattern) に一致し、pos で指定された正規表現グループインデックスに対応するすべての部分文字列を抽出します。この関数は配列を返します。

正規表現では、グループは括弧 () で囲まれ、左から右に開く括弧を数えて1から番号が付けられます。例えば、([[:lower:]]+)C([[:lower:]]+) は大文字 C の左または右側にある小文字を一致させるためのものです。このパターンには2つのグループが含まれています。C の左側の ([[:lower:]]+) が最初のグループで、C の右側の ([[:lower:]]+) が2番目のグループです。

パターンは str の一部を完全に一致させる必要があります。一致が見つからない場合は、空の文字列が返されます。

この関数は v3.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