メインコンテンツにスキップ
Workday User Guide
最終更新: 2023-06-23
正規表現の取得グループ

正規表現の取得グループ

正規表現のサブパターンを囲むペアを使用して、
グループ
を定義できます。正規表現グループは、次の目的で使用できます。
  • 正規表現演算子と数量指定子をグループ全体に一度に適用します。
  • 取得グループを作成します。
    取得グループを使用して、正規表現から保存または返す一致値を指定できます。デフォルトでは、グループは一致を生成するテキスト
    を取得します
    。グループ化されたサブ式と一致する文字列の部分は、後で取得または使用するためにメモリに保存されます。
  • 取得不可グループを作成します。

グループの番号付け

正規表現には複数のグループを含めることができ、グループを入れ子にすることができます。最初の左かっこから、左から右に番号が付けられ、グループには 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
部分式から。