在 Google BigQuery 中将字符串保存为正则表达式

Posted

技术标签:

【中文标题】在 Google BigQuery 中将字符串保存为正则表达式【英文标题】:Saving string as regular expression in Google BigQuery 【发布时间】:2021-08-11 09:12:57 【问题描述】:

我需要通过几个正则表达式对列的值进行分类。我正在使用 regex_contains。我想根据答案(真|假)获得新参数。我有另一个表,有 2 列:正则表达式和参数。 我加入了这样的表格:select * from xxx join yyy on REGEXP_CONTAINS(xxx.value, yyy.regExVal) = true

如何将正则表达式作为字符串?我需要在精确的正则表达式前面保存 'r' litera。 REGEXP_CONTAINS(VALUE, r'REGEX') 或者也许有人知道如何将正则表达式存储为另一个 bigquery 表中的值?

【问题讨论】:

【参考方案1】:

正则表达式必须保存为原始字符串。

What is the meaning of r in REGEXP_EXTRACT(word,r'(\w\w\'\w\w)')

WITH xxx AS (
  SELECT 'alpha' value UNION ALL
  SELECT 'beta' UNION ALL
  SELECT  'beta' UNION ALL
  SELECT 'gamma' UNION ALL
  SELECT  '123'
  ),
  yyy as (Select "[0-9]" regExVal UNION ALL Select r"\w")
 

select *, REGEXP_extract(xxx.value, yyy.regExVal) as found
 from xxx join yyy on REGEXP_CONTAINS(xxx.value, yyy.regExVal) = true

查看r"\w"中的r

【讨论】:

以上是关于在 Google BigQuery 中将字符串保存为正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AppScript 在 BigQuery 中将 Google 工作表持久化为表格

在 Google BigQuery 中将数组转换为字符串 [重复]

如何在 Google Apps 脚本中将 BigQuery TIMESTAMP 转换为日期?

在 Google BigQuery 中将数字格式化为没有逗号 (1,000,000 -> 1000000)

google-bigquery 在查询结果中将日期格式设置为 mm/dd/yyyy

如何使用 R 将 Google Cloud Datalab 输出保存到 BigQuery