REGEXP_MATCH

The REGEXP_MATCH function evaluates a field or expression using Google RE2 regular expression.

Sample Usage

REGEXP_MATCH(name, '[a-zA-Z].*')

Syntax

REGEXP_MATCH(X, regular_expression)

 

Parameters:

  • X - a field or expression to evaluate.
  • regular_expression - a regular expression.

Notes

  • Regular expressions in Data Studio use RE2-style syntax.
  • Escape special characters with 2 backslash characters:
    REGEXP_MATCH(MyField, "foo\\.bar") matches the literal period character.
  • Regular expressions are case-sensitive by default. You can make the match case-insensitive using the (?i) flag:
    REGEXP_MATCH(field_expression, '(?i)a.*') matches both "abc123" and "ABC123".
  • The REGEXP_MATCH function returns boolean values.
  • REGEXP_MATCH attempts to match the entire string contained in field_expression. For example, if field_expression is "ABC123":

    REGEXP_MATCH(field_expression, 'A') returns false.
    REGEXP_MATCH(field_expression, 'A.*') returns true.

Examples

Match if name begins with a letter:

REGEXP_MATCH(name, '[a-zA-Z].*')

Create arbitrary regions using CASE statements:

CASE
   WHEN REGEXP_MATCH
(country, "(USA|Canada|Mexico)") THEN "North America"
   WHEN REGEXP_MATCH(country, "(England|France)" ) THEN "Europe"
   ELSE "Other"
END

Use case-insensitive matching and logical operators:

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

Negative match using the NOT operator:

CASE 
   WHEN REGEXP_MATCH(dimension1, 'A') AND NOT REGEXP_MATCH(dimension1, 'B') 
   THEN 'C' 
   ELSE 'D' 
END
Was this helpful?
How can we improve it?