在Mysql版本8中使用REGEXP_REPLACE提取域名表单url

在Mysql版本8中使用REGEXP_REPLACE提取域名表单url,mysql,sql,regex,Mysql,Sql,Regex,我正在使用最新版本的服务器版本:8.0.11 MySQL社区服务器-GPL 表结构是web\u url url列中的示例数据 www.google.com www.yahoo.com 如何使用该功能提取像google和yahoo这样的域名 REGEXP\u REPLACE。因此,它的意思是用空格或“”替换www.和.com部分。如果您有任何其他解决方案,那么欢迎您 我要么错过了一些。所以请帮忙 我已经编写了正则表达式,但不知道如何在查询中正确使用它。请给出基本答案 我的问题 从web\u url

我正在使用最新版本的
服务器版本:8.0.11 MySQL社区服务器-GPL

表结构是
web\u url

url列中的示例数据

www.google.com

www.yahoo.com

如何使用该功能提取像
google
yahoo
这样的域名
REGEXP\u REPLACE
。因此,它的意思是用空格或“”替换
www.
.com
部分。如果您有任何其他解决方案,那么欢迎您

我要么错过了一些。所以请帮忙

我已经编写了正则表达式,但不知道如何在查询中正确使用它。请给出基本答案

我的问题

从web\u url中选择REGEXP\u REPLACE(url),^(www.)[a-zA-z0-9]*([a-zA-Z]{3})(\/[a-zA-Z09-]*)*,”

到目前为止,我完成了这个查询

到目前为止我做了这件事可能有人需要帮助 完成此查询以测试是否正在进行比较。 请忽略最后两行,因为它们只是为了测试
regexp\u like
函数

从web-url中选择regexp-like(url,“^(www.)(.*)(.com)$”


如果
url
具有误导性,并且实际上是FQDN,那么评论建议

reverse(regexp_replace(reverse(regexp_replace(url, '\\.[^\\.]*\\.?$', '')), '\\..*', ''))
应该给你右边的第二个标签(或者第三个,如果末尾有可选的空标签),这似乎是你想要的

reverse()
是必需的,因为我们不知道字符串中有多少点。由于去掉最后一个(或最后两个)标签后的
reverse()
,我们可以简单地从上的第一个点删除


如果有带有
regexp\u replace()
的捕获组,这会更容易,但我在文档中没有找到任何相关内容。如果我错过了,请评论并指出这一点。

谢谢你的回答,但它几乎给出了解决方案,可能是我做错了什么,然后让我知道,但这是我得到的。嗯?这很奇怪,看起来字符串是连在一起的?请同时查询原始字符串。