模式后的 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 简单恢复模式 - 崩溃后的恢复选项