如何使用 RegEx 获取部分重定向 url?
How to use RegEx to get part of redirect url?
我在 Google 自定义搜索结果中有一个包含列表重定向 URL 的列。我想从组合 URL.
中提取外部域示例:
https://www.google.com/url?client=internal-element-cse&cx=3c360356&q=https://examplesite1.co.uk/aa-vv--cc-dd-gggg-/&sa=U&ved=2ahUKEwjj1cvJ79PuAhXBHc0KHRgvBLsgQIAhAC&usg=AOvVaw2vIHUiy31YKWs5c41Q
https://www.google.com/url?client=internal-element-cse&cx=3c360356&q=http://www.exmaplesite2.co.uk/wp-content/uploads/2016/12/research-paper.pdf&sa=U&ved=2ahUKEwiphLKMi80KHcLUCMAQFjAFegQIARAC&usg=AOvVawkm-bXjmxsPxLQ9w3
https://www.google.com/url?client=internal-element-cse&cx=3c360356&q=https://examplesite-3.com/home/en/aaa-bbb/38376&sa=U&ved=2ahUKEwixq4K7qttXEKHTOEClsQFjAAegQIARAB&usg=AOvVaw2ouHhfNNTPV
以上URL的,我要提取外网域名
以上示例的结果:
www.site2.co.uk
www.exmaplesite2.co.uk
examplesite-3.com
我可以在 Google Sheet 中执行此操作,但需要 RedEx 以便我可以在 Google Data Studio 中使用它。
谢谢。
只需组合两个正则表达式:
(?:(?<=&q=https://)|(?<=&q=http://))(.*?)(?=/.*?&)
您可以将此正则表达式与额外的负向回顾一起使用:
(?<=(?<!^https)://)[^/]+
正则表达式详细信息:
(?<=(?<!^https)://)
:正面回溯断言我们在当前位置之前有://
。此外,嵌套的负后视(?<!^https)
断言我们在://
之前没有开始https
从而跳过匹配开始 URLs[^/]+: Match 1+ of any character that is not
/`
更新: 根据下面的评论,Google Data Studio
不支持后视,因此我们可以使用此正则表达式:
.https?://([^/]+)
并从捕获组#1 中获取域名。
.
放在 https?:
之前将确保我们不匹配行首的 URL。