在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()
的捕获组,这会更容易,但我在文档中没有找到任何相关内容。如果我错过了,请评论并指出这一点。谢谢你的回答,但它几乎给出了解决方案,可能是我做错了什么,然后让我知道,但这是我得到的。嗯?这很奇怪,看起来字符串是连在一起的?请同时查询原始字符串。