C#使用正则表达式验证URL

Chloe
Chloe
发布时间:2026-10-14 | 2人浏览过
原创

本文详细介绍在C#编程语言中利用 System.Text.RegularExpressions 命名空间进行字符串匹配及统一资源定位符(URL)有效性验证的具体实现方法。

使用 System.Text.RegularExpressions 进行字符串匹配

在 .NET 框架中,System.Text.RegularExpressions 命名空间为处理正则表达式提供了强大的类支持。要实现基础的字符串匹配操作,首先需要确保项目中已正确引入所需的命名空间:

using System;
using System.Text.RegularExpressions;

以下是一个简单的控制台应用程序示例,展示如何实例化 Regex 对象并使用 Match 方法查找源字符串中的第一个匹配项,以及使用 Matches 方法获取所有匹配结果:

namespace RegexDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个忽略大小写的正则表达式对象,匹配 "China"
            Regex regex = new Regex("China", RegexOptions.IgnoreCase);
            
            string source = "China is my mother, My mother is china!";
            
            // 1. 使用 Match 方法查找第一个匹配项
            Match m = regex.Match(source);
            if (m.Success)
            {
                Console.WriteLine("找到第一个匹配");
            }
            
            Console.WriteLine(new string('-', 9));
            
            // 2. 使用 Matches 方法查找所有匹配项
            MatchCollection matches = regex.Matches(source);
            foreach (Match s in matches)
            {
                if (s.Success)
                {
                    Console.WriteLine("找到了一个匹配");
                }
            }
            
            Console.ReadLine();
        }
    }
}

在该示例中,regex.Match() 仅返回源字符串中出现的第一个成功匹配项的详细信息;而 regex.Matches() 则返回一个包含所有匹配项的集合,允许开发者遍历整个字符串以处理多次出现的情况。

使用正则表达式验证 URL 格式

除了基础匹配,正则表达式在处理协议、域名和路径结构复杂的 Uniform Resource Identifier (URI/URL) 时同样表现优异。以下示例构建了一个相对完善的正则表达式模式,用于验证以 http、https 或 ftp 开头的有效 URL:

namespace URLRegex
{
    class Program
    {
        static void Main(string[] args)
        {
            // 定义 URL 验证的正则表达式模式
            // 要求以 http://, https:// 或 ftp:// 开头,后跟域名和可选端口/路径
            string Pattern = @"^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&$%\$#\=~])*$";
            
            Regex r = new Regex(Pattern);
            
            // 待测试的 URL 字符串
            string source = "https://www.jb51.net";
            
            // 执行匹配检查
            Match m = r.Match(source);
            
            if (m.Success)
            {
                Console.WriteLine("URL验证成功!");
            }
            else
            {
                Console.WriteLine("URL验证失败!");
            }
            
            Console.ReadLine();
        }
    }
}

此模式要求 URL 必须以特定的协议前缀开始,中间部分匹配合法的域名字符,结尾处允许包含各种特殊字符构成的查询参数或路径后缀。开发者可根据实际应用场景中对 URL 格式的严格要求(如是否允许 IP 地址、是否强制指定端口等)调整该 Pattern 字符串。

总结

以上就是C#使用正则表达式匹配字符串验证URL的详细内容,更多关于C#正则表达式应用验证的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表