更新。假设域名是主机名的最后两项,除了第二项是 co </ strong>或 com ,在这种情况下,域名是最后三个项目。如果只有一项->这是域名。
要处理的最少案件:
http://google.com -> google.com
http://www.google.com -> google.com
http://abc.cde.google.com -> google.com
http://google.co.uk -> google.co.uk
http://www.google.com.au -> google.com.au
http://www.mysite.info -> mysite.info
http://www.mysite.business -> mysite.business
http://localhost -> localhost
此问题的正则表达式沙箱
这是测试和一些开始的正则表达式https://regex101.com/r/AyuW88/3
作为奖励,还有其他几种情况(但是如果regex仅适用于以前的情况,我会很高兴)
http://google.com:8080 -> google.com
http://www.google.com?q=abc -> google.com
http://www.google.com/smth -> google.com
答案 0 :(得分:1)
这应该适用于您的简单情况:
r'([^\/\.]+\.(com|co)\.\w+|[^\/\.]+.\w+)$'
在组1中捕获。您的假设“第二个是co或com除外”已硬编码在正则表达式中。另外,在线上有一个错字:
http://www.google.com.au -> google.com.ua
应该是“ google.com.au”
答案 1 :(得分:-1)
此正则表达式应解决您的用例。
正则表达式:(?<=http(s)?:\/\/).*
说明:
(?<=http(s)?:\/\/)
:积极回溯,以查看单词是http还是https。
.*
:之后将捕获所有内容。
链接:https://regex101.com/r/fX1fI5/130
希望这会有所帮助。