请问您能否帮忙构建一个正则表达式,以便在Google Big Query中使用REGEXP_EXTRACT
解析给定输入url的完整域名?
解析条件:
- 开始捕获应为:
- 如果url中有
//
:在第一个//
之后 - 如果没有
//
:从字符串开头
- 如果url中有
- 结束捕获应为:在第一个
?
或第一个/
或第一个&
之后,如果没有找到?
、/
或&
,则一直到字符串结尾
一些例子:
htp://www.google.com --> www.google.com
htp://www.google.com/item/ --> www.google.com
htp://www.google.com?source=google --> www.google.com
htp://www.google.com&source=google --> www.google.com
www.google.com --> www.google.com
www.google.com/item/ --> www.google.com
www.google.com?source=google --> www.google.com
www.google.com&source=google --> www.google.com
http://google.com&source=google --> google.com
https://www.example-code.com/vb/string.asp --> www.example-code.com
我创建了这个正则表达式:
REGEXP_EXTRACT('google.it?medium=cpc?cobranded=google&keyword=foo';, r'//([^/|^?|^&]+)')
但是它仅适用于包含//
的URL,我无法得到一个可以在URL中没有//
的情况下也起作用的正则表达式。
NET.HOST()
和NET.REG_DOMAIN()
代替先前的方法。 - RDRR