我正在学习/练习正则表达式。我写这个是为了测试 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 以及子域?
最佳答案
把“.”在“www”匹配中;这将解决您的网址中可能有前导点匹配的问题。
关于javascript - 关于正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4099191/