REGEXP_MATCH 関数は、Google RE2 正規表現を使ってフィールドまたは式を評価します。
使用例
REGEXP_MATCH(name, '[a-zA-Z].*')
構文
REGEXP_MATCH(X, regular_expression)
パラメータ:
X
- 評価するフィールドまたは式。-
regular_expression
- 正規表現。
メモ
- データポータルの正規表現は、RE2 スタイルの構文を使用します。
- 2 つのバックスラッシュ文字で特殊文字をエスケープします。
REGEXP_MATCH(MyField, "foo\\.bar")
は、リテラルのピリオド文字に一致します。 -
正規表現では、デフォルトで大文字と小文字が区別されます。大文字と小文字を区別せずに一致させるには、
(?i)
フラグを使用します。
REGEXP_MATCH(
field_expression, '(?i)a.*')
は、「abc123」と「ABC123」の両方に一致します。 - REGEXP_MATCH 関数は、
boolean
値を返します。 - REGEXP_MATCH は、field_expression に含まれている文字列全体に一致するかどうかを確認します。たとえば、field_expression が「ABC123」の場合は次のようになります。
REGEXP_MATCH(
field_expression, 'A') は false を返します。
REGEXP_MATCH(
field_expression, 'A.*')
は true を返します。
例
文字で始まる名前に一致する:
REGEXP_MATCH(name, '[a-zA-Z].*')
CASE ステートメントを使用して任意の地域を作成する:
CASE
WHEN REGEXP_MATCH(country, "(USA|Canada|Mexico)") THEN "North America"
WHEN REGEXP_MATCH(country, "(England|France)" ) THEN "Europe"
WHEN REGEXP_MATCH(country, "(USA|Canada|Mexico)") THEN "North America"
WHEN REGEXP_MATCH(country, "(England|France)" ) THEN "Europe"
ELSE "Other"
END
大文字と小文字を区別しない一致と論理演算子を使用する:
CASE
WHEN REGEXP_MATCH(Campaign, "((?i).*Recipes).*")
OR REGEXP_MATCH(Campaign, "((?i).*Cooking).*")
THEN "Recipes"
WHEN REGEXP_MATCH(Campaign, "((?i).*Grilling).*")
THEN "Seasonal"
WHEN REGEXP_MATCH(Campaign, "((?i).*Phone).*")
OR REGEXP_MATCH(Campaign, "((?i).*Tablet).*")
OR REGEXP_MATCH(Campaign, "((?i).*Console).*")
OR REGEXP_MATCH(Campaign, "((?i).*Laptop).*")
OR REGEXP_MATCH(Campaign, "((?i).*Wearable).*")
THEN "Electronics"
ELSE "Other"
END
NOT 演算子を使用した Negative match :
CASE
WHEN REGEXP_MATCH(dimension1, 'A') AND NOT REGEXP_MATCH(dimension1, 'B')
THEN 'C'
ELSE 'D'
END