目次

Search

  1. はじめに
  2. トランスフォーメーション言語
  3. 定数
  4. 演算子
  5. 変数
  6. 日付
  7. 関数
  8. カスタム関数の作成
  9. カスタム関数APIリファレンス

トランスフォーメーション言語リファレンス

トランスフォーメーション言語リファレンス

REG_EXTRACT

REG_EXTRACT

入力値から正規表現のサブパターンを抽出します。たとえば、フルネームの正規表現から姓または名を抽出することができます。
REG_REPLACE関数を使用して、文字列内の文字を新しい文字パターンに置換します。

構文

REG_EXTRACT(
subject
,
'pattern', subPatternNum
, match_from_start
)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
subject
必須
文字列データ型。正規表現のパターンと比較する値を渡します。
pattern
必須
文字列データ型。一致させる正規表現パターン。Perl互換の正規表現構文を使用する必要があります。パターンは、一重引用符で囲みます。各サブパターンをかっこで囲みます。
subPatternNum
オプション
整数値。一致させる正規表現のサブパターン番号。サブパターン番号は、以下のガイドラインを使用して決定します。
  • 値を指定しない、または1。最初の正規表現サブパターンを抽出します。
  • 2. 2番目の正規表現サブパターンを抽出します。
  • n。
    n
    番目の正規表現サブパターンを抽出します。
デフォルトは1です。
match_from_start
オプション
数値。文字列の開始から一致が見つかった場合、そのサブストリングを返します。開始値の一致を判定するガイドラインは以下のとおりです。
  • 0。開始インデックスまたは任意のインデックスからのサブジェクトストリングとパターンを一致します。
  • 0以外。開始インデックスからのサブジェクトストリングとパターンを一致します。

Perl互換の正規表現構文の使用

REG_EXTRACT関数、REG_MATCH関数およびREG_REPLACE関数では、Perl互換の正規表現構文を使用する必要があります。
以下の表に、Perl互換の正規表現構文のガイドラインを示します。
構文
説明
. (ピリオド)
任意の1つの文字に一致します。
[a-z]
1つの文字インスタンスに一致します。たとえば、[a-z]ではabに一致します。大文字のコード
\d
0~9の任意の数字のうち、1つのインスタンスに一致します。
\s
空白1文字に一致します。
\w
アンダースコア(_)を含む英数字1文字に一致します。
()
式をグループ化します。たとえば(\d\d-\d\d)では、かっこによって正規表現\d\d-\d\dがグループ化されます。この正規表現では12-34のように、任意の2つの数字の後にハイフンが続き、さらに任意の2つの文字が続くものが検索されます。
{}
指定された文字数に一致します。たとえば、\d{3}は、650または510などの任意の3桁の番号に一致します。また、[a-z]{2}は、CAまたはNYなどの任意の2文字に一致します。
?
前にある文字または文字のグループに、0回または1回一致します。たとえば、\d{3}(-{d{4})?任意の3桁の数字、および任意の3桁の数字にハイフンと任意の4桁の数字が続くものの両方に一致します。
*(アスタリスク)
アスタリスクの後に続く、0個以上の値のインスタンスに一致します。たとえば*0は、任意の値が0の前に置かれたものに一致します。
+
プラス記号の後に続く、1個以上の値のインスタンスに一致します。たとえば、\w+は、英数字1文字が続く任意の値です。
たとえば、以下の正規表現は、93930などの5桁のアメリカの郵便番号、および93930-5407などの9桁の郵便番号を検索します。
\d{5}(-\d{4})?
\d{5}は、93930などの5つの数字を表します。-\d{4}を囲むかっこによって、式のこの部分がグループ化されています。ハイフンは、93930-5407などの9桁の郵便番号の中のハイフンを表します。\d{4}は4つの数字、たとえば5407などを表します。疑問符は、ハイフンと4つの数字がオプションであるか、1回のみ出現することを表します。

COBOL構文をPerl互換の正規表現構文へ変換

COBOL構文に精通している場合、以下の情報を使用してPerl互換の正規表現を書き込むことができます。
以下の表に、COBOL構文の例とそれに対応するPerl構文を示します。
COBOL構文
Perl構文
説明
9
\d
0~9の任意の数字のうち、1つのインスタンスに一致します。
9999
\d\d\d\d
または
\d{4}
1234や5936など、0~9の任意の4桁の数字に一致します。
x
[a-z]
1つの文字インスタンスに一致します。
9xx9
\d[a-z][a-z]\d
1ab2など、任意の数字の後に2つの文字が続き、その後に1つの数字が続くものに一致します。

SQL構文のPerl互換の正規表現構文への変換

SQL構文に精通している場合、以下の情報を使用してPerl互換の正規表現を書き込むことができます。
以下の表に、SQL構文の例とそれに対応するPerl構文を示します。
SQL構文
Perl構文
説明
%
. *
任意の文字列に一致します。
A%
A.*
「A」で始まる任意の文字列(「Area」など)に一致します。
_
. (ピリオド)
任意の1つの文字に一致します。
A_
A.
「A」で始まり、その後に任意の1文字が続く文字列(「AZ」など)に一致します。

戻り値

入力値の一部である、
n
番目のサブパターンの値を返します。
nth
のサブパターンは、subPatternNumで指定した値に基づいています。
入力値またはパターンがNULLの場合はNULLです。

式でREG_EXTRACTを使用して、姓、ミドルネーム、名が一致する正規表現からミドルネームを抽出することもできます。 たとえば、以下の式は正規表現のミドルネームを返します。
REG_EXTRACT( Employee_Name, '(\w+)\s+(\w+)\s+(\w+)',2)
Employee_Name
Return Value
Stephen Graham Smith
Graham
Juan Carlos Fernando
Carlos