BigQuery - 查找 unicode 字符

eth*_*nny 4 unicode google-bigquery

我希望构建一个查询,该查询将查找给定列中具有 unicode 字符的记录。

我尝试过各种变体

SELECT col 
FROM [project:dataset.table] 
where (REGEXP_MATCH(path,r"[\u0020-\u007E]"))
Run Code Online (Sandbox Code Playgroud)

似乎无法获得正则表达式的正确语法。这个特定的给出了错误:

无法解析正则表达式“[\u0020-\u007E]”:无效的转义序列:\u

读到这里似乎暗示双引号应该启用 unicode 转义。显然不是。

建议?


编辑:

数据(大致)的形式

  • 时间戳
  • 记录编号
  • 大批 [
    • 数据分数a
    • 数据分数 b ]

想象一下,我想要查找任何数据部分a包含 unicode 字符的记录。这更有意义吗?

Mik*_*ant 7

请尝试以下操作 - 用于/与 BigQuery Standard SQL 一起使用

#standardSQL
SELECT col 
FROM `project.dataset.table` 
WHERE REGEXP_CONTAINS(path, '''[\u0020-\u007E]''')  
Run Code Online (Sandbox Code Playgroud)

想象一下,我想要查找任何数据部分 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
Run Code Online (Sandbox Code Playgroud)