我试图计算所有域example
和扩展.com
(又名。顶级域名),从一个文本,可以包括链接,但我完全失败,因为它匹配子域,也东西域是扩展有时。
目标:
https://www.subdomain.example.com/folder/folder -> example.com
example.com/folder/folder -> example.com
www.subdomain.example.com/folder/folder -> example.com
example.com -> example.com
www.example.com -> example.com
subdomain.example.com -> example.com
尝试1:
(?:(?:www?).)?b((xn--)?[a-z0-9]+(-[a-z0-9]+)*.)+[a-z]{2,}b
Regex演示
尝试2:
(?:(?:https?|ftp)://)?[w/-?=%.]+.[w/-&?=%.]+
Regex演示
像这样的东西可能会起作用或开始:https://regex101.com/r/1UMjML/1(稍微更新了正则表达式)
regex:(?<=https?://)(?:w+.)+(?<domain>w+.w+)[/s$]
一个简单的解决方案是匹配任何后跟tld的内容:
w+.com
regex101.com
然后你可以通过在开头和结尾填充你想要匹配的内容来使它更明确,例如:
(?:https://.*?)?(w+.com)