我需要从url检索一些单词:
WebViewActivity - https://google.com/search/?term=iphone_5s&utm_source=google&utm_campaign=search_bar&utm_content=search_submit
返回我想要的:
search/iphone_5s
但是我很困惑,还不太了解如何使用regexp_substr来获取该数据。
我正在尝试使用此查询
regexp_substr(web_url, '\google.com/([^}]+)\/', 1,1,null,1)
仅返回“搜索”字词,当我尝试
regexp_substr(web_url, '\google.com/([^}]+)\&', 1,1,null,1)
事实证明,我听完所有单词,直到最后一个'&'
您可以使用aREGEXP_REPLACE
来匹配整个字符串,但是捕获两个子字符串并用对捕获组值的两个反向引用替换:
REGEXP_REPLACE(
'WebViewActivity - https://google.com/search/?term=iphone_5s&utm_source=google&utm_campaign=search_bar&utm_content=search_submit',
'.*//google\.com/([^/]+/).*[?&]term=([^&]+).*',
'\1\2')
请参阅regex演示和在线Oracle演示。
图案细节
.*
-尽可能多的零个或多个除换行符以外的字符//google\.com/
-//google.com/
子字符串([^/]+/)
-捕获第1组:一个或多个字符/
,然后是一个/
.*
-尽可能多的零个或多个除换行符以外的字符[?&]term=
-?
或&
和一个term=
子串([^&]+)
-捕获组2:除以下字符外的一个或多个字符 &
.*
-尽可能多的零个或多个除换行符以外的字符注意:要使用此方法并在找不到匹配项的情况下得到空结果|.+
,请在正则表达式模式的末尾附加。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句