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获取选中行的某一列的数据
768 1
|
存储 Java 数据库连接
activiti工作流数据库表介绍
activiti工作流数据库表介绍
833 0
|
4月前
|
机器学习/深度学习 人工智能 API
MaaS市场全球领导者!阿里云5项能力获评最高评级
18日,Omdia发布《2025年全球企业级MaaS市场分析》报告,阿里云获评全球领导者,并在基础模型、模型精调等5大维度获最高评级,为中国唯一。报告指出,MaaS已进入2.0阶段,需提供全栈AI能力。阿里云凭借通义大模型、百炼平台等全栈方案,服务超100万客户,覆盖众多世界500强企业,GenAI渗透率居首。
379 2
|
11月前
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
11388 1
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
关系型数据库 MySQL 数据库连接
Unity连接Mysql数据库 增 删 改 查
在 Unity 中连接 MySQL 数据库,需使用 MySQL Connector/NET 作为数据库连接驱动,通过提供服务器地址、端口、用户名和密码等信息建立 TCP/IP 连接。代码示例展示了如何创建连接对象并执行增删改查操作,确保数据交互的实现。测试代码中,通过 `MySqlConnection` 类连接数据库,并使用 `MySqlCommand` 执行 SQL 语句,实现数据的查询、插入、删除和更新功能。
|
人工智能 安全 机器人
国内怎么使用claude?这篇文章教会你!
渴望体验 Anthropic 公司的杰作
3628 1
|
网络安全
宝塔配置ssl证书没有生效
宝塔配置ssl证书没有生效
695 4
|
网络架构
如何在路由器上配置静态路由表?
【8月更文挑战第17天】如何在路由器上配置静态路由表?
2302 2
|
存储 JavaScript 前端开发
decimal.js库的安装和使用方法
【10月更文挑战第24天】decimal.js 是一个非常实用的高精度计算库,通过合理的安装和使用,可以在 JavaScript 中实现精确的数值计算和处理。你可以根据具体的需求和项目情况,灵活运用该库来解决数字精度丢失的问题。