如何使用带有查询字符串的正则表达式验证URL?

时间:2015-01-20 08:56:59

标签: c# regex validation

请在标记为重复之前阅读完整的问题。

我想验证可以包含查询字符串的URL。我找到了一些解决方案。但这不适合我。 我的有效网址示例如下:
1)http://www.example.com/
2)www.example.com
3)example.com
4)http://www.exaple.com/test2/aa.aspx?id=2&sad=ss

我使用了以下表达式:
1)^((http|https)://)?([\w-]+\.)+[\w]+(/[\w- ./?]*)?$

但是当我使用这个表达式时,不允许查询字符串。

2)(http|ftp|https)://([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?
但在此http是必需的。如果我输入的URL如下:google.com此表达式表明它无效。

有人可以帮我验证一下吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

下面的表达对我有用。请试试这个:

^((http|https|ftp|www):\/\/)?([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)(\.)([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]+)

答案 1 :(得分:-1)

请你试试下面的表达式,让我知道结果

((http|ftp|https):\//(www)\.{0,}){0,}\w*\.\w{3}((\/\w*){1,}\.\w*\?{1}(\w*\=\w*){0,}\&{0,}(\w*\=\w*){0,}){0,}