我低于正则表达式。我怎么能强制使用.com / net / etc?
String regex = "^(((https?|ftp)://|(www|ftp)\\.)[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?)|(http://)$";
谢谢!
答案 0 :(得分:2)
我建议您不要为此我们使用正则表达式。
我建议您使用URL
类(或URI
类,如果更合适)解析URL,然后检查主机名部分是否以所需顶部之一结束级别域名。
我还建议您避免将一组顶级域名硬连接到您的代码和/或正则表达式中。
一大堆新TLD将很快上线。就像数千一样......
即使忽略了新TLD,也不会修复这套双字母国家/地区顶级域名。 (南苏丹有代码吗?)
答案 1 :(得分:1)
这个正则表达式应该这样做:
[.](com|net|other)
但是把它放在你的大网址正则表达式中的正确位置(这可能不是最好的方式......)
答案 2 :(得分:0)
验证URL协议后,您可能会使用^ [a-zA-Z0-9 - 。] +。(com | org | net | mil | edu | COM | ORG | NET)$