加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 使用REGEXP_EXTRACT获取域和子域

发布时间:2020-12-12 06:27:30 所属栏目:MsSql教程 来源:网络整理
导读:我只设法提取我使用的网站列表的TLD REGEXP_EXTRACT(Domain_name,r'(.[^.:]*)].?:?[0-9]*$') AS web_tld 例: 我有 www.example1.abc.comwww.example2.efg.123.net 我想要结果 子域 example1efg 域 abc123 TLD .com.net 编辑: 在我的查询中遇到错误 ‘必须
我只设法提取我使用的网站列表的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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读