我希望构建一个查询来查找给定列中包含 unicode 字符的记录。
我尝试过各种变体
SELECT col
FROM [project:dataset.table]
where (REGEXP_MATCH(path,r"[\u0020-\u007E]"))
似乎无法获得正则表达式的正确语法。这个特定的错误给出了错误:
Failed to parse regular expression "[\u0020-\u007E]": invalid escape sequence: \u
阅读here这似乎意味着双引号应该启用 unicode 转义。显然不是。
建议?
<小时/>编辑:
数据(大致)是这样的形式
- 时间戳
- 记录 ID
- 数组[
- 数据分数a
- 数据部分 b ]
假设我想要查找数据部分 a 中任何 包含 unicode 字符的记录。这更有意义吗?
最佳答案
尝试以下操作 - 用于/与 BigQuery 标准 SQL 一起使用
#standardSQL
SELECT col
FROM `project.dataset.table`
WHERE REGEXP_CONTAINS(path, '''[\u0020-\u007E]''')
Imagine that I want to find records where any of data fraction a contains unicode characters.
#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
关于unicode - BigQuery - 查找 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43482331/