一个比较好的匹配url的网址

 最近,由于在项目中遇到了一个需要过滤文本输入框中是否包含网址的问题。之前采用了网上广泛流行的版本:([a-zA-z]+://[^\s]*)。后来发现这个正则表达式,只能过滤带了http协议的网址,但是对www.sina.com这样的网址却过滤不了。采用(http(s)://)?([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?,发现可以过滤不带协议名的www网址,但是不幸的是连小数也进行了匹配。在网上搜寻良久,没有找到合适的,最后在msdn的技术论坛找到了某位仁兄写的,经测试,达到了自己的要求。故mark一下。

(?i)(http://|https://)?(\w+\.){1,3}(com(\.cn)?|cn|net|info|org|us|tk)\b

原文链接是: http://social.msdn.microsoft.com/Forums/zh-CHS/visualcshartzhchs/thread/4305d5d4-1709-4c0f-86ae-3db78d08bced

有感于正则表达式在文本处理这一块的强大作用,自己在这一方面还要加强学习和练习。 

posted @ 2012-07-26 16:48  美梦成真  阅读(672)  评论(0编辑  收藏  举报