【发布时间】:2009-06-19 06:13:25
【问题描述】:
我是正则表达式的初学者。我的要求是使用查询字符串、方括号等验证简单的网址到网址。例如,
www.test.com?waa=[样本数据]
我写的正则表达式只适用于简单的网址。带有方括号的那个失败了。有什么想法吗?
【问题讨论】:
-
发布您编写的正则表达式可能会帮助其他人帮助您;此外,网络上有很多例子,也许稍微研究一下就可以了
我是正则表达式的初学者。我的要求是使用查询字符串、方括号等验证简单的网址到网址。例如,
www.test.com?waa=[样本数据]
我写的正则表达式只适用于简单的网址。带有方括号的那个失败了。有什么想法吗?
【问题讨论】:
你真的需要使用正则表达式吗?
bool isUri = Uri.IsWellFormedUriString("http://...", UriKind.RelativeOrAbsolute)
【讨论】:
我建议您更好地查看以下网站
http://www.regular-expressions.info/dotnet.html
如果没有实际看到您正在使用的正则表达式,我无法提供太多见解。给你答案也不会真正教会你太多。给一个人一个正则表达式,你帮助他一点。教他正则表达式,他对生活有好处
【讨论】:
非常感谢fr的回复.. 这就是我写的..也适用于查询字符串...但是在添加 [] 时失败了..
/^(https?|ftp)://(?#)(([a-z0-9$.+!*\'(),;\?&=-]|%[0 -9a-f]{2})+(?#)(:([a-z0-9$.+!*\'(),;\?&=-]|%[0-9a -f]{2})+)?(?#)@)?(#)((([a-z0-9][a-z0-9-][a-z0-9].) (#)[a-z]{2}[a-z0-9-]a-z0-9|(\d|[1-9]\d|1\d{2}|2 [0-4][0-9]|25[0-5].){3}(?#)(\d|[1-9]\d|1\d{2}|2[0-4 ][0-9]|25[0-5])(?#))(:\d+)?(?#))(((/+([a-z0-9$_.+!*\' (),;:@&=-]|%[0-9a-f]{2}))(?# )(\?([a-z0-9$_.+! *\'(),;:@&=-]|%[0-9a-f]{2}))(?#)?)?)?(?#)(#([a- z0-9$_.+!*\'(),;:@&=-]|%[0-9a-f]{2})*)?(?#)$/i
【讨论】:
如果你想要带有 http 的 url,请使用这个
http(s)?://([\w-]+.)+[\w-]+(/[\w- ./?%&=]*)?
如果 oyu 不想要 URL 中的 http 然后去
?://([\w-]+.)+[\w-]+(/[\w- ./?%&=]*)?
【讨论】: