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获取选中行的某一列的数据
740 1
|
1月前
|
C#
C# 随机数生成:Random 类用法
Random类用于生成伪随机数,适用于游戏、验证码、测试等场景。通过静态实例避免重复创建,确保随机性。提供整数、小数、布尔值及指定长度的随机字符串生成方法,使用简便且高效。注意需复用实例防止种子重复导致随机数相同。
|
1月前
|
存储 算法 C#
C# 哈希值计算:MD5/SHA256 加密
本示例展示了C#中使用MD5和SHA256算法生成哈希值的方法,适用于密码加密与数据校验。MD5安全性较低,建议仅用于非敏感场景;密码存储推荐使用SHA256配合盐值以增强安全性。
|
1月前
|
存储 安全 C#
C# 数组与集合:List<T> 最常用场景
数组长度固定,集合(List&lt;T&gt;)可动态增删,支持泛型与类型安全。常用操作包括添加、删除、遍历和查询元素,是开发中首选的动态数据存储方式。
|
1月前
|
JSON C# 数据格式
C# 实现简单的 HTTP 请求工具(POST 补充)
该代码实现了一个基于 HttpClient 的异步 HTTP POST 请求工具类,支持以 JSON 格式提交数据并反序列化响应结果,具备异常处理机制,适用于 .NET 环境下的轻量级网络请求操作。
|
1月前
|
JSON C# 数据格式
C# JSON 序列化与反序列化:Newtonsoft.Json 用法
JSON是前后端交互常用格式,Newtonsoft.Json(Json.NET)是C#中最流行的JSON处理库。本文介绍如何使用它实现对象与JSON字符串的序列化和反序列化,并提供封装工具类及调用示例,便于在项目中快速集成与使用。
|
1月前
|
JSON API C#
C# 实现简单的 HTTP 请求工具(GET/POST)
HTTP请求工具用于调用第三方API,支持GET和POST方法,实现数据获取与提交。示例代码展示通过HttpClient发送异步POST请求,处理响应并解析JSON结果,适用于高效集成外部服务。
|
1月前
|
C#
C# 实现发送邮件功能(SMTP)
通过SMTP协议实现邮件发送,支持文本与附件,需配置邮箱SMTP信息(如QQ邮箱授权码)。示例代码展示C#中如何使用SmtpClient发送邮件,适用于QQ、163、Gmail等主流邮箱服务。
|
1月前
|
算法 C#
C# 实现简单的接口限流工具(令牌桶算法)
基于令牌桶算法实现接口限流,通过控制令牌生成速率与桶容量,防止高频请求压垮服务,适用于Web及后端系统,保障接口稳定。