我希望构建一个查询,查找在给定列中包含unicode字符的记录。
我尝试了
的变体SELECT col
FROM [project:dataset.table]
where (REGEXP_MATCH(path,r"[\u0020-\u007E]"))
似乎无法获得正则表达式的正确语法。这个特殊的一个给出了错误:
无法解析正则表达式" [\ u0020- \ u007E]":无效的转义序列:\ u
阅读here这似乎意味着双引号应该能够启用unicode转义。显然不是。
建议?
数据(大致)是
的形式想象一下,我想找到任何 数据分数a 包含unicode字符的记录。这有什么意义吗?
答案 0 :(得分:3)
尝试以下 - for / with BigQuery Standard SQL
#standardSQL
SELECT col
FROM `project.dataset.table`
WHERE REGEXP_CONTAINS(path, '''[\u0020-\u007E]''')
想象一下,我想找到任何数据分数a包含unicode字符的记录。
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 AS col, ['ab!"#$%&()*+,-./', 'cd!"#$%&()*+,-./'] AS path UNION ALL
SELECT 2, ['12,3', '456', '789'] UNION ALL
SELECT 3, ['abc']
)
SELECT *
FROM `project.dataset.table`
WHERE (
SELECT COUNTIF(REGEXP_CONTAINS(path, '''[\u0020-\u0030]'''))
FROM UNNEST(path) AS path
) > 0