REGEXP_MATCH

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"
   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
この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。