如何在Looker Studio中移除格式错误的Firebase文本数据?
问题:筛选Looker Studio中格式正确的Firebase文本数据
我从Firebase提取了文本格式数据,希望在Looker Studio中仅展示格式正确的数据。样本数据如下:
| No. | Sample_Date |
|---|---|
| 1 | AAA 1/2(M) |
| 2 | AAA 1/17(T) |
| 3 | AAA 12/7(W) |
| 4 | AAA M 21/2 |
| 5 | AAA W 23/2 |
| 6 | AAA T, 21/2 |
| 7 | AAA W 21.2. |
| 8 | AAA M 27-2 |
| 9 | AAA 2.21. (T) |
| 10 | AAA 2/21T |
其中No.1-3的AAA MM/DD(D)为正确格式,No.4-10为错误格式,需从报表中移除。
我曾尝试用正则表达式筛选包含/和()的正确数据,但无法正确匹配(),尝试的代码如下:
CASE WHEN REGEXP_CONTAINS(Sample_Date, "AAA") AND WHEN REGEXP_CONTAINS(Sample_Date, "/") AND WHEN REGEXP_CONTAINS(Sample_Date, "(.)") THEN "Correct Data" ELSE "Other" END
问题分析
- SQL语法错误:CASE语句中多条件用AND连接时,无需重复写
WHEN - 正则匹配错误:
(.)是正则特殊语法,匹配任意单个字符,而非字面括号;要匹配实际括号需用转义符\\(和\\)(SQL中需双反斜杠转义)
解决方案
使用精准匹配正确格式的正则表达式,修正后的CASE语句如下:
CASE WHEN REGEXP_CONTAINS(Sample_Date, r'^AAA \d{1,2}/\d{1,2}\([MTW]\)$') THEN "Correct Data" ELSE "Other" END
正则规则说明
^:匹配字符串开头,确保从"AAA"开始AAA:固定匹配前缀"AAA "(注意包含空格)\d{1,2}/\d{1,2}:匹配1-2位数字+斜杠+1-2位数字的日期格式\([MTW]\):匹配括号内的单个星期标识(M/T/W,可根据实际需求扩展其他字符)$:匹配字符串结尾,确保没有多余后缀
之后在Looker Studio中,筛选标记为"Correct Data"的条目即可展示符合要求的数据。
内容的提问来源于stack exchange,提问作者Damon
相关产品推荐
相关产品推荐

