📜  c#中网站url验证的正则表达式(1)

📅  最后修改于: 2023-12-03 15:29:48.662000             🧑  作者: Mango

C#中网站Url验证的正则表达式

正则表达式是一种强大的文本处理工具,C#中也内置了正则表达式库,开发者可以使用它来验证和处理字符串。

当我们需要对一个字符串进行Url格式的验证时,C#中使用正则表达式可以轻松实现。

以下是一个可以验证Url是否符合网站格式的正则表达式:

^(http(s)?://)?([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?$

这个正则表达式可以通过以下方式进行解释:

  1. ^ 代表以什么开头
  2. (http(s)?://)? 匹配 http:// 或 https:// ,? 代表可以有0个或1个s
  3. ([\w-]+.)+[\w-]+ 匹配域名部分,包括下划线、数字、字母、连字符和点号,+ 代表匹配多个
  4. (/[^\s]*)? 匹配路径或查询参数部分,包括正斜杠和问号
  5. $ 代表以什么结尾

下面是使用该正则表达式进行Url验证的示例代码:

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        string url1 = "https://www.example.com/";
        string url2 = "http://example.com";
        string url3 = "ftp://example.com";
        string url4 = "https://www.example.com/path?query=string";

        string pattern = "^(http(s)?://)?([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?$";

        bool isMatch1 = Regex.IsMatch(url1, pattern);
        bool isMatch2 = Regex.IsMatch(url2, pattern);
        bool isMatch3 = Regex.IsMatch(url3, pattern);
        bool isMatch4 = Regex.IsMatch(url4, pattern);

        Console.WriteLine("Is url1 a valid url? " + isMatch1);
        Console.WriteLine("Is url2 a valid url? " + isMatch2);
        Console.WriteLine("Is url3 a valid url? " + isMatch3);
        Console.WriteLine("Is url4 a valid url? " + isMatch4);
    }
}

上述代码会输出以下结果:

Is url1 a valid url? True
Is url2 a valid url? True
Is url3 a valid url? False
Is url4 a valid url? True

我们可以看到,正则表达式成功地过滤了无效的Url,保留了有效的网址。

以上是C#中网站Url验证的正则表达式和相应代码的介绍。