用于解析URL的正则表达式

时间:2016-05-21 03:07:01

标签: regex url

我有一个关于如何解析网址的问题。

这是我的正则表达式:

[^\s]+?\.(com|net|org|edu...ALL_DOMAIN_EXTENSIONS)([^\s\w\d][^\s]{1,})?

我的理由是我想接受

mail.google.com (as long as there's a .com, .net etc)

但.com必须后跟一个符号(如果有)而不是字母数字。但是,通过这种检查方式,此URL将失败

www.company.com

但是,在这种情况下我不能贪婪地重复搜索.com

developer.google.com/appid=com.company.apppackage

我如何搜索以检查“.com”的第一次出现,而后面没有字母数字字符,但如果只是

,则将其设为可选

Google.com

1 个答案:

答案 0 :(得分:1)

使用$作为匹配字符串结尾的替代方法。

[^\s]+?\.(com|net|org|edu...ALL_DOMAIN_EXTENSIONS)([^\s\w\d][^\s]+|$)?
BTW,试图匹配所有顶级域名会让你发疯,因为现在任何人都可以注册TLD,因此他们会经常更改。