我有一个关于如何解析网址的问题。
这是我的正则表达式:
[^\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
答案 0 :(得分:1)
使用$
作为匹配字符串结尾的替代方法。
[^\s]+?\.(com|net|org|edu...ALL_DOMAIN_EXTENSIONS)([^\s\w\d][^\s]+|$)?
BTW,试图匹配所有顶级域名会让你发疯,因为现在任何人都可以注册TLD,因此他们会经常更改。