【问题标题】:How to validate URL using Regular expression with query string?如何使用带有查询字符串的正则表达式验证 URL?
【发布时间】:2023-03-03 14:34:02
【问题描述】:

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

我想验证可以包含查询字符串的 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 这个表达式表示它无效。

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

【问题讨论】:

  • 你为什么不试试 Uri.TryCreate 来验证 uri。
  • 即使是最基本的正则表达式知识也应该让您更改第二个表达式以使协议标识符成为可选...
  • 我想使用验证器验证文本框上的 URL。我现在没有其他选择。我需要可以帮助我的表达方式。我无权访问反手代码。
  • 我试过了,但对我没有帮助。
  • 您的第二个查询很好。不知道为什么你不能修改它以满足你的需要。

标签: c# regex validation


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 首先匹配http://wwwhttp://wwww.fff。和.www。还有.www/.?&&&&&&.
    猜你喜欢
    • 2014-07-20
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多