首页 新闻 会员 周边 捐助

求 url 正则表达式 。。网上的都有bug

0
悬赏园豆:5 [已解决问题] 解决于 2008-01-18 15:45
<P>我现在用的是</P> <P>@"(https?://[-\w.]+(:\d+)?(/([\w/_.]*)?)?)"</P> <P>但是当url中出现 - 或 ?</P> <P>等字符的时候,url就截至了。。比如</P> <P><A href="http://www.5time.cn/html/8/8-2.html">http://www.5time.cn/html/8/8-2.html</A></P> <P>经过我的这个正则就变成</P> <P><A href="http://www.5time.cn/html/8/8">http://www.5time.cn/html/8/8</A></P> <P>了。。</P> <P>刚发现这个编辑器的这则好像就没有出问题。。</P> <P>高手给个答案啊。。</P>
问题补充: 我到问题所在了。。但是问题还是没有解决。。麒麟.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;/~\+#])" 最后就是用的这个。。不过我的需要给里面加个括号而已。。 问题解决了终于。。吼吼。。
彭成刚的主页 彭成刚 | 初学一级 | 园豆:5
提问于:2008-01-17 11:38
< >
分享
最佳答案
1
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? 这个是VS的RegularExpressionValidator里自带的Web URL
麒麟.NET | 老鸟四级 |园豆:3614 | 2008-01-17 12:33
其他回答(2)
0
用\转义掉,把字符 数字啥的分出来,呵呵我菜鸟
mythzz | 园豆:2 (初学一级) | 2008-01-17 12:07
0
建议直接用.net 2.0自带的Uri.IsWellFormedOriginalString方法进行URL验证
找事的狐狸 | 园豆:474 (菜鸟二级) | 2008-01-17 17:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册