在 BigQuery 中提取字符串和第一次出现的内容之间的字符

Posted

技术标签:

【中文标题】在 BigQuery 中提取字符串和第一次出现的内容之间的字符【英文标题】:Extract characters between a string and the first occurrence of something in BigQuery 【发布时间】:2021-06-01 21:55:09 【问题描述】:

我想使用正则表达式提取“u1=”和第一个分号之间的一组字符。例如,给定以下字符串:id=1w54;name=nick;u1=blue;u2=male;u3=ohio;u5=

所需的正则表达式输出应该只是blue

我在https://regex101.com 上测试了(?<=u1=)[^;]*,它可以工作。但是,当我在 BigQuery 中使用 regexp_extract(string, '(?<=u1=)[^;]*') 运行此程序时,我收到一条错误消息,显示为“无法解析正则表达式:无效的 perl 运算符:(?

我很困惑为什么这在 BQ 中不起作用。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

你可以像这样使用regexp_extract()

regexp_extract(string, 'u1=([^;]+)')

【讨论】:

以上是关于在 BigQuery 中提取字符串和第一次出现的内容之间的字符的主要内容,如果未能解决你的问题,请参考以下文章

提取操作中的 BigQuery 错误:错误处理作业意外。请再试一次

bigquery 标准 sql = 从字符串中提取数据

在 BigQuery 中提取嵌套 Array/STRUCT JSON 字符串字段的组件

如何提取在 BigQuery 中存储为字符串的 JSON 数组

在 json 文档中没有指定键的 bigquery 中从 json 字符串中提取键和值

如何从 BigQuery 中的 JSON 字符串中提取数组