C# 正则表达式:快速匹配与验证

简介: 正则表达式用于字符串模式匹配,如手机号、邮箱、密码验证等。C# 通过 `System.Text.RegularExpressions` 命名空间中的 `Regex` 类实现。本文示例展示了使用 `RegexHelper` 工具类进行常见验证:`IsPhoneNumber` 验证中国大陆手机号(1开头,共11位);`IsEmail` 校验邮箱格式;`IsValidPassword` 判断密码是否包含字母和数字且长度为8-20位;`ExtractNumbers` 提取字符串中所有数字。代码简洁高效,适用于数据校验与文本处理场景。

正则表达式用于字符串模式匹配(如手机号、邮箱、密码验证),C# 中通过 Regex 类实现。
using System.Text.RegularExpressions;

public class RegexHelper
{
// 验证手机号(中国大陆)
public static bool IsPhoneNumber(string phone)
{
if (string.IsNullOrEmpty(phone)) return false;
// 正则表达式:1开头,11位数字
string pattern = @"^1[3-9]\d{9}$";
return Regex.IsMatch(phone, pattern);
}

// 验证邮箱
public static bool IsEmail(string email)
{
    if (string.IsNullOrEmpty(email)) return false;
    string pattern = @"^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z0-9]{2,4}$";
    return Regex.IsMatch(email, pattern);
}

// 验证密码(8-20位,含字母和数字)
public static bool IsValidPassword(string password)
{
    if (string.IsNullOrEmpty(password)) return false;
    string pattern = @"^(?=.*[A-Za-z])(?=.*\d).{8,20}$";
    return Regex.IsMatch(password, pattern);
}

// 提取字符串中的数字
public static string ExtractNumbers(string str)
{
    if (string.IsNullOrEmpty(str)) return "";
    return Regex.Replace(str, @"[^\d]", "");
}

}

// 调用示例
Console.WriteLine("手机号验证:" + RegexHelper.IsPhoneNumber("13800138000")); // True
Console.WriteLine("邮箱验证:" + RegexHelper.IsEmail("test@example.com")); // True
Console.WriteLine("密码验证:" + RegexHelper.IsValidPassword("Csharp123")); // True
Console.WriteLine("提取数字:" + RegexHelper.ExtractNumbers("C#编程123教程456")); // 123456

相关文章
Datatables获取选中行的某一列的数据
Datatables获取选中行的某一列的数据
731 1
|
2天前
|
安全 C#
C# 泛型:实现类型安全的通用代码
泛型通过类型参数(如T)实现类型通用性,可定义不指定具体类型的类或方法,使用时再确定类型。示例中,Swap<T>方法可交换任意同类型变量,List<T>集合避免装箱拆箱,提升性能与安全。
|
2天前
|
C#
C# 字符串操作:常用方法汇总(含案例)
C# 提供丰富的字符串操作方法,如拼接、截取、替换和判断等。本文通过工具类案例演示如何高效处理字符串,提升开发效率与代码可读性。
|
2天前
|
Java C#
C# 实现简单的线程池工具
使用 `ThreadPool` 管理多线程任务,有效控制并发数量,避免因线程过多导致系统性能下降。通过示例代码演示如何提交任务、跟踪完成状态,并等待所有任务结束,提升资源利用率和程序稳定性。
|
2天前
|
存储 数据库连接 C#
C# 配置文件读取:App.config 用法
App.config用于存储程序配置(如数据库连接、接口地址),避免硬编码,提升可维护性。通过ConfigurationManager读取配置,支持字符串、整型、布尔值及连接字符串的获取,需引用System.Configuration程序集。
|
2天前
|
开发框架 .NET Java
C# LINQ:简化集合查询(基础用法)
LINQ是C#中集成的查询功能,可简洁高效地查询集合、数据库等数据源。通过示例演示了过滤、排序、分组、投影和聚合操作,展现其在处理产品列表时的强大与便捷。
|
2天前
|
存储 缓存 安全
C# 字典(Dictionary):键值对存储的高效用法
`Dictionary<TKey, TValue>` 是键唯一且支持快速查找(O(1))的键值对集合,适用于存储映射关系。可通过 `Add` 添加、`TryGetValue` 安全获取、`Remove` 删除元素,遍历使用 `foreach`,建议优先使用 `TryGetValue` 提升性能。
|
2天前
|
C#
C# 日期时间操作:格式化与计算
DateTime类用于处理日期时间操作,支持格式化输出、加减计算及获取特定日期(如本月第一天)。示例代码展示了常用功能:格式化、计算日期差、增减天数等,便于高效处理时间数据。
|
2天前
|
网络协议 C#
C# 实现 IP 地址有效性验证
通过正则表达式与IPAddress类双重验证IP地址,支持IPv4和IPv6格式校验,确保地址有效性。代码示例展示了高效、可靠的验证方法。
|
2天前
|
C#
C# 实现简单的计算器(控制台版)
本案例实现一个控制台计算器,支持加减乘除四则运算,具备输入验证功能,可捕获无效输入与除零异常,确保程序稳定运行。

热门文章

最新文章