大查询正则表达式提取

4c8rllxm  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(501)

我正在尝试从url中提取项\子类型字段。
这个正则表达式在获取第一个项时可以正常工作
item_type SELECT REGEXP_EXTRACT('info?item_type=icecream&item_subtype=chocolate/cookies%20cream,vanilla&page=1', r'item_type=(\w+)') 但是,什么是正确的正则表达式,可以让一切从“chocolate”开始,一直到“&page1”之前
我试过这个,但似乎不能让它继续工作下去 SELECT REGEXP_EXTRACT('info?item_type=icecream&item_subtype=chocolate/cookies%20cream,vanilla&page=1', r'item_subtype=(\w+[^Z])') 基本上,我想提取'巧克力/饼干%奶油,香草'

6xfqseft

6xfqseft1#

就你而言, \w+ 只匹配一个或多个字母、数字或下划线。您的期望值也可能包含其他字符。
你可以用

SELECT REGEXP_EXTRACT('info?item_type=icecream&item_subtype=chocolate/cookies%20cream,vanilla&page=1', r'item_subtype=([^&]+)')

查看regex演示。
笔记: item_subtype= -此字符串作为文本字符序列匹配 ([^&]+) -一种捕获组1,它匹配并捕获一个或多个字符,而不是 & 一个单独的内存缓冲区,由 REGEXP_EXTRACT 功能。

相关问题