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

How to validate URL using Regular expression with query string?

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

我想验证可以包含查询字符串的 URL。我找到了一些解决方案。但它对我不起作用。 对我来说有效的 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 这个表达式表示它无效。

谁能帮我验证一下?
提前谢谢你。

你能试试下面的表达式并告诉我结果吗

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

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

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