Looker Data Studio中REGEX_CONTAINS检测字符串句点的逻辑异常问题
Looker Data Studio中REGEX_CONTAINS检测字符串句点的逻辑异常问题
嘿,我一眼就看出问题出在哪啦!你写的正则表达式 r'.' 里的.在正则语法里是匹配任意单个字符的通配符,不管目标字符串里有没有真正的句点,它都会返回true,这就导致你的CASE语句里所有符合last_touch_utm_medium = "email"条件的记录都被标成了"marketing",完全不符合你的预期。
要正确检测字符串里是否包含句点,你需要把.转义成它本身的含义,在正则里用\.来表示真正的句点字符。所以正确的CASE语句应该改成这样:
CASE WHEN last_touch_utm_medium = "email" AND REGEXP_CONTAINS(last_touch_utm_campaign,r'\.') THEN "marketing" ELSE "flow" END
简单解释下:
- 加上反斜杠
\之后,.就不再是通配符了,而是代表字面意义上的句点符号 - 这样只有当
last_touch_utm_campaign里确实包含.的时候,才会触发"marketing"的标签,否则就会被归类为"flow"
你可以把这个修改后的语句替换原来的,再测试一下,应该就能得到你想要的结果啦!
备注:内容来源于stack exchange,提问作者Zach Scheimer




