[已解决问题] 求 url 正则表达式 。。网上的都有bug
提问时间: 2008-01-17 11:38
悬赏分:5 浏览:540 次

我现在用的是

@"(https?://[-\w.]+(:\d+)?(/([\w/_.]*)?)?)"

但是当url中出现 - 或 ?

等字符的时候,url就截至了。。比如

http://www.5time.cn/html/8/8-2.html

经过我的这个正则就变成

http://www.5time.cn/html/8/8

了。。

刚发现这个编辑器的这则好像就没有出问题。。

高手给个答案啊。。


提问者:彭成刚 - 初学一级

问题补充:我到问题所在了。。但是问题还是没有解决。。麒麟.NET 说的 http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? 在正则表达式里没有任何问题。。可是在我的.net里面就会出现问题了。。感觉应该式没有转换成.net下的正则。。麒麟.NET 来看看啊。。!
return System.Text.RegularExpressions.Regex.Replace(s,"http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?","<a href=\"http://www.zzcn.net/redir/?url=$1\" class=\"outlink\" target=_blank>$1</a>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
这个式我写的。。来看看啊。。
-------------------------------------------
问题解决了。。最后从dudu那里找到答案了。。
http://www.cnblogs.com/dudu/archive/2007/12/19/1006119.html
将地址转换为链接的正则表达式(regex url href)
就是看的这个。。
@"(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])"
最后就是用的这个。。不过我的需要给里面加个括号而已。。
问题解决了终于。。吼吼。。

最佳答案
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

这个是VS的RegularExpressionValidator里自带的Web URL
2008/1/17 12:33:38 回答者:麒麟.NET


提问者对于答案的评价:虽然这个不是我要的。。但是在正则工具里面。。这个确实是完美匹配url了。。加之麒麟.NET对很多人都热心的帮助。。决定将分数给之。。
其它回答(2)
用\转义掉,把字符 数字啥的分出来,呵呵我菜鸟
4个月前   回答者:mythzz - 初学一级
建议直接用.net 2.0自带的Uri.IsWellFormedOriginalString方法进行URL验证
4个月前   回答者:Tony Qu - 菜鸟二级
评论
4个月前   彭成刚 :
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
这个属于太宽松了。。
我的很多汉字什么的又进入到url里面了
例如:
腾讯旗下网站 - 滔滔 http://www.taotao.com/ 和我这个类似。。是和
这个。。他的url就会认为是
http://www.taotao.com/ 和我这个类似
这个还是不行。。
4个月前   彭成刚 :
建议直接用.net 2.0自带的Uri.IsWellFormedOriginalString方法进行URL验证
-------------------------
偶用的是.net1.1 
求救哇!!
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除