如何使用正则表达式在url中强制使用com / net / etc?

时间:2012-08-29 14:11:07

标签: java regex

我低于正则表达式。我怎么能强制使用.com / net / etc?

String regex = "^(((https?|ftp)://|(www|ftp)\\.)[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?)|(http://)$";

谢谢!

3 个答案:

答案 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)$