我正在学习/练习正则表达式。我已经写了这个来测试url的...我希望它能以这些格式捕获url:
www.site.com
www.site.co.uk etc
site.com
play.site.com
所以我写了这个:
(http:\/\/)*(www)*\.*(\w{2,})(\.{1})(\w{2,3})(\.*)(\w{2,3})*
(匹配http:// 0次或更多次,后跟一些更多字符0次或更多次,后跟一个域名,后跟一个句点,后跟一些更多字符(至少2,最多3),然后接下来是一个可选的句号和一些更多的字符(对于co.uk等)。)
我对正则表达式很新,所以不确定我所做的事情是否有问题,但它似乎在测试中运行良好:http://regexpal.com/。随意撕开它!
我注意到的一件事是它与我不想要的.site.com匹配。我如何只匹配site.com并仍然允许http://和www和子域?
答案 0 :(得分:6)
放“。”在“www”比赛中;这将解决您的网址中可能具有前导点匹配的问题。
答案 1 :(得分:1)
请不要在严重的情况下使用此代码。使用regexp解析URI是错误和可怕的 - 使用库来正确执行它。