我有一个列与谷歌自定义搜索结果列表重定向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
我能够做到这一点在谷歌工作表,但需要RedEx,以便我可以在谷歌数据工作室使用它。
谢谢。
将两个正则表达式合并:
(?:(?<=&q=https://)|(?<=&q=http://))(.*?)(?=/.*?&)
演示,解释
您可以将此正则表达式与额外的反向查看一起使用:
(?<=(?<!^https)://)[^/]+
RegEx演示
RegEx细节:
(?<=(?<!^https)://)
:正向后视,确认://
在当前位置之前。另外,(?<!^https)
后面嵌套的负面查找断言我们没有在://
之前启动https
,因此跳过匹配起始url[^/]+: Match 1+ of any character that is not
/'
更新:根据下面的评论,在Google Data Studio
中不支持向后看,因此我们可以使用这个正则表达式:
.https?://([^/]+)
从捕获组#1中获取域名。
.
放在https?:
之前将确保我们不会在行首匹配URL。