首页 文章

如果在字段中的任何位置找到字符串,则匹配正则表达式RE2 - Google Data Studio CASE

提问于
浏览
1

我试图在Google Data Studio中使用CASE语句返回布尔结果,即在现有字段中找到给定字符串 .

由于Data Studio使用RE2正则表达式,我相信以下内容可行,但它返回“无法解析公式”错误:

REGEXP_MATCH时的情况(Foo,'(\ W | ^)bar(\ W | $)')那么1 ELSE 0 END

我已经尝试了许多不同的Regex语法组合,但无法解决它 . 任何帮助将不胜感激,因为这应该是一个简单的REGEXP_MATCH?

如果在字段中的任何位置找到字符串,则布尔结果应为“true”:

Foo |布尔结果

blah bar / boo doo |真正

但是/不应该匹配假

但匹配/这里吧|真正

任何帮助,将不胜感激 .

1 回答

  • 1

    您需要确保将整个字符串与要在 REGEXP_MATCH 中使用的模式匹配,并且在使用正则表达式转义时,请确保将它们双重转义:

    CASE WHEN REGEXP_MATCH(Foo, '(.*\\W|^)bar(\\W.*|$)') THEN 1 ELSE 0 END
    

    如果 Foo 中有换行符,请在模式的开头添加 (?s) .

    Details

    • (.*\\W|^) - 尽可能多地使用任何0个字符,然后是非字符字符串或字符串的开头

    • bar - 这个词

    • (\\W.*|$) - 非字char,后跟任意0个字符尽可能多或字符串结尾

    regex demo .

相关问题