我使用的是Server version: 8.0.11 MySQL Community Server - GPL
的最新版本。 Download link
表格结构为web_url < id, url >
网址列中的示例数据。
www.google.com
www.yahoo.com
如何使用该功能仅提取google
和yahoo
的域名
REGEXP_REPLACE
。所以它的意思是替换www.
和.com
部分替换为空格或''。如果您有任何其他解决方案,那么欢迎您。
我要么错过了一些。所以帮忙。
我编写了正则表达式,但没有在查询中正确使用它。请提供查询基础答案。
我的查询
select REGEXP_REPLACE(url,'^(www.)[a-zA-z0-9]*(.[a-zA-Z]{3})(\/[a-zA-Z09-]*)*','') from web_url;
到目前为止,我完成了这个查询。
到目前为止,我这样做可能是有人得到帮助
完成此查询以测试是否正在进行比较。
请忽略最后两行,因为它们仅用于测试regexp_like
功能
select regexp_like(url,'^(www.)(.*)(.com)$') from web_url;
答案 0 :(得分:-1)
如果url
具有误导性并且实际上是FQDN,那么评论提示,
reverse(regexp_replace(reverse(regexp_replace(url, '\\.[^\\.]*\\.?$', '')), '\\..*', ''))
应该给你右边的第二个标签(如果末尾有可选的空标签,则为第三个标签),这似乎是你想要的。
reverse()
是必要的,因为我们不知道字符串中有多少个点。由于我们删除了最后一个(或最后两个)标签后的reverse()
,我们只需从第一个点上删除。
如果有regexp_replace()
的捕获组会更容易,但我在文档中没有找到任何相关内容。如果我错过了那个,请评论并指出我。