正規表現の取得グループ
正規表現のサブパターンを囲むペアを使用して、
グループ
を定義できます。正規表現グループは、次の目的で使用できます。- 正規表現演算子と数量指定子をグループ全体に一度に適用します。
- 取得グループを作成します。取得グループを使用して、正規表現から保存または返す一致値を指定できます。デフォルトでは、グループは一致を生成するテキストを取得します。グループ化されたサブ式と一致する文字列の部分は、後で取得または使用するためにメモリに保存されます。
- 取得不可グループを作成します。
グループの番号付け
正規表現には複数のグループを含めることができ、グループを入れ子にすることができます。最初の左かっこから、左から右に番号が付けられ、グループには 1-
n
の番号が付けられます。一致全体を含む暗黙的なグループ ゼロ (0) が常に存在します。例:(a(b*))+(c)
このパターンには次の 3 つのグループが含まれます。
group 1: (a(b*)) group 2: (b*) group 3: (c)
取得グループと REGEX 関数
次の操作ができます。
REGEX
文字列の一部を抽出する関数。次の基準 REGEX
この関数は、 最初に
取得されたグループの値のみを返します。ユーザー
名
@プロバイダ
ドメイン
次の操作ができます。 REGEX
この関数は、E メール
フィールドから E メール アドレスの プロバイダ
部分のみを返します。REGEX([email],"^[a-zA-Z0-9._%+-]+@
([a-zA-Z0-9._-]+)
\.[a-zA-Z]{2,4}$")グループと REGEX_REPLACE 関数の取得
次の操作ができます。
REGEX_REPLACE
文字列に一致し、一致した文字列を別の値に置き換える関数です。次の基準 REGEX_REPLACE
関数は次の 3 つの引数を受け取ります。- 入力文字列
- 一致する正規表現
- 置換正規表現
取得グループを使用して過去参照を取得できますが、常に一致全体が返されます。
グループとバックリファレンスの取得
再参照を使用して、特定の取得グループ番号の一致するコンテンツを再参照できます。通常、取得グループを含むのと同じ正規表現で過去参照を使用します。バック参照は、バックスラッシュで始まるグループ番号を参照することで指定します。用途
\1
取得グループ 1 を参照する \2
グループ 2 の取得を参照するため、 など。HTML タグとそれに含まれるテキストのペアを対応付けるとします。開始タグを取得グループにキャプチャし、その後、逆参照を使用して対応する終了タグを一致させることができます。
(<([A-Z][A-Z0-9]*)\b[^>]*>.*?</\2>)
この正規表現には、次の 2 つの取得グループが含まれています。
- グループ 1 には、最も外側にかっこが含まれており、文字列全体が取得されます。
- グループ 2 は、次の条件で一致する文字列を取得します:[A-Z][A-Z0-9]*。
その後、以下を使用してグループ 2 を参照できます。
\2
再参照: 対応する終了 HTML タグに一致する値。使用する場合
REGEX_REPLACE
関数では、間の参照を使用して、 前の
正規表現で取得グループを参照できます。遡及参照を使用して前の正規表現でグループを参照する場合、構文は少し異なります。ドル記号 () を使用してください$
グループ番号の前に を使用 (例: ) $1
前の式のグループ 1 への再参照を指定します。電話番号
フィールドがあり、値が次のようにフォーマットされているとします。 xxx.xxx.xxxx
。次の例では、phone_number
の値と一致し、次の形式の値に置き換えます。 (xxx)
xxx-xxxx
:REGEX_REPLACE([phone_number],"([0-9]{3})\.([[0-9]]{3})\.([[0-9]]{4})","\($1\) $2-$3")
置換式の過去参照に注意してください。これらは、以前の一致する式の取得グループを参照します。
取得不可グループ
場合によっては、サブパターンをグループ化する際に、テキストを取得する
ものの
、かっこを使用することができます。取得しないグループが次の値で始まる: (?:
(左かっこの後にクエスチョン マークとコロン)。たとえば、次のようになります。 h(?:a|i|o)t
一致 hat
または hit
または hot
、ただし、次の値は取得されません: a
、 i
、または o
部分式から。