我只设法提取我使用的网站列表的TLD
REGEXP_EXTRACT(Domain_name,r'(\.[^.:]*)]\.?:?[0-9]*$') AS web_tld
例:
我有
www.example1.abc.com www.example2.efg.123.net
我想要结果
子域
example1 efg
域
abc 123
TLD
.com .net
编辑:
在我的查询中遇到错误
‘必须指定一个捕获组’
当我使用(.?([^:]).([^.]).([^:]):?[0-9] * $)作为正则表达式
SELECT REGEXP_EXTRACT(Domain,r'(\.?([^.:]+)\.([^.:]+)\.([^.:]+):?[0-9]*$)'),FROM [weblist.domain] ORDER BY 1 LIMIT 250;
解决方法
由于您只能使用一个捕获组,我认为您实际上可以使用3个单独的正则表达式来获取所需的值:
SELECT REGEXP_EXTRACT(Domain,r'([^.:]+):?[0-9]*$'),REGEXP_EXTRACT(Domain,r'([^.:]+).[^.:]+:?[0-9]*$'),r'([^.:]+).[^.:]+.[^.:]+:?[0-9]*$') FROM [weblist.domain] ORDER BY 1 LIMIT 250;