在 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 中提取嵌套 Array/STRUCT JSON 字符串字段的组件
如何提取在 BigQuery 中存储为字符串的 JSON 数组