模式后的 REGEXP_EXTRACT

Posted

技术标签:

【中文标题】模式后的 REGEXP_EXTRACT【英文标题】:REGEXP_EXTRACT after a pattern 【发布时间】:2020-04-23 05:27:35 【问题描述】:

我真的对正则表达式视而不见。我想在'page='这个词之后提取

page=course; uri=%2Fcourse
page=homepage

在这种情况下,它将是“课程”和“主页”。我试过了

REGEXP_EXTRACT(context, r"(?<=page=)+[a-zA-Z]*")

但它说 “无法解析正则表达式:无效的 perl 运算符:(? in Google BigQuery。

有什么建议吗?谢谢!

【问题讨论】:

【参考方案1】:

Google 的regex library 不支持lookbehinds,但您可以使用捕获组让REGEXP_EXTRACT 返回该子字符串而不是整个匹配项:

REGEXP_EXTRACT(context, r"page=([a-zA-Z]+)")

【讨论】:

嗨!谢谢你..我已经尝试过了,它的工作原理!无论如何,您知道如果我还想包含“page=”这个词,那么它将是“page=course”或“page=homepage” @AnisaDaraputri 只需从正则表达式中删除 (),然后它将捕获整个字符串。 我明白了.. 成功了!好吧,我想我现在有点理解这种模式了。谢谢你^^

以上是关于模式后的 REGEXP_EXTRACT的主要内容,如果未能解决你的问题,请参考以下文章

合并模式后的“GraphQLError:类型中找不到字段:'query_root'”

WebLogic Server 12.1.2后的字符型安装模式

SQL Server 2012 简单恢复模式 - 崩溃后的恢复选项

STM32 STOP模式唤醒后的时钟

centos7 tty模式不支持中文,需要去github找 修改后的内核

SAP RETAIL 寄售模式的公司间STO发货过账后的物料凭证的特殊点