0

我有下面的正则表达式。我如何授权 .com/net/etc?

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

谢谢!

4

3 回答 3

2

我建议您不要为此使用正则表达式。

我建议您使用URL类(或URI更合适的类)解析 URL,然后检查主机名部分是否以所需的顶级域之一结尾。

我还建议您避免将一组顶级域硬连接到您的代码和/或正则表达式中。

  • 一大批新的顶级域名将很快上线。像成千上万的人一样...

  • 即使忽略新的 TLD,这组 2 个字母的国家 TLD 也不是固定的。(南苏丹有代码吗?)

于 2012-08-29T14:14:50.693 回答
1

这个正则表达式应该这样做:

[.](com|net|other)

但是将它放在你的大 url 正则表达式中的正确位置(这可能不是最好的方法......)

于 2012-08-29T14:18:30.007 回答
0

验证 URL 协议后,您可以使用 ^[a-zA-Z0-9-.]+.(com|org|net|mil|edu|COM|ORG|NET)$

于 2012-08-29T14:15:07.530 回答