当前位置: 首页 > news >正文

C#正则表达式与用法

🌟 C# 常用正则表达式与用法

C# 使用正则需要引用命名空间:

using System.Text.RegularExpressions;

常用方法:

  • Regex.IsMatch(input, pattern) → 返回 bool,用于验证

  • Regex.Match(input, pattern) → 返回 Match 对象,可获取捕获内容

  • Regex.Matches(input, pattern) → 返回 MatchCollection,获取所有匹配

  • Regex.Replace(input, pattern, replacement) → 替换字符串


1. 验证类示例

// 手机号验证 bool isPhone = Regex.IsMatch("13812345678", @"^1[3-9]\d{9}$"); // 邮箱验证 bool isEmail = Regex.IsMatch("txj@example.com", @"^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$"); // 身份证验证 bool isID = Regex.IsMatch("110105199001011234", @"^\d{17}[\dXx]$"); // IP 地址验证 bool isIP = Regex.IsMatch("192.168.0.1", @"^(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}$"); // 强密码验证(8-20位,字母+数字) bool isStrongPwd = Regex.IsMatch("Txj123456", @"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$");


2. 提取类示例

// 提取数字 string text = "订单号123456"; MatchCollection nums = Regex.Matches(text, @"\d+"); foreach (Match m in nums) Console.WriteLine(m.Value); // 输出 123456 // 提取邮箱用户名 string email = "txj@example.com"; Match userMatch = Regex.Match(email, @"^([\w.-]+)@"); if(userMatch.Success) Console.WriteLine(userMatch.Groups[1].Value); // 输出 txj // 提取 URL 域名 string url = "https://www.txj.com/path"; Match urlMatch = Regex.Match(url, @"https?://([\w.-]+)"); if(urlMatch.Success) Console.WriteLine(urlMatch.Groups[1].Value); // 输出 www.txj.com


3. 替换类示例

// 去掉首尾空格 string str = " hello world "; string clean = Regex.Replace(str, @"^\s+|\s+$", ""); Console.WriteLine(clean); // hello world // 替换 HTML 标签 string html = "<p>hello</p>"; string plain = Regex.Replace(html, @"<[^>]+>", ""); Console.WriteLine(plain); // hello


4. 常用正则大全(C# 版)

用途正则表达式说明
手机号^1[3-9]\d{9}$中国大陆手机号
邮箱^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$邮箱格式
身份证^\d{17}[\dXx]$18位身份证
IP 地址`^(25[0-5]2[0-4]\d
URL 域名https?://([\w.-]+)提取主机名
日期^\d{4}-\d{2}-\d{2}$YYYY-MM-DD
数字\d+提取数字
银行卡号^\d{16,19}$16~19位数字
强密码^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$字母+数字组合
中文字符^[\u4e00-\u9fa5]+$全中文
HTML 标签<([a-z]+)[^>]*>(.*?)</\1>捕获标签内容
时间 HH:MM:SS`^([01]\d2[0-3]):[0-5]\d:[0-5]\d$`
十六进制颜色`^#?([a-fA-F0-9]{6}[a-fA-F0-9]{3})$`
http://www.dtcms.com/a/358485.html

相关文章:

  • unity学习——视觉小说开发(二)
  • JsMind 常用配置项
  • Qt中的锁(1)
  • AFSIM仿真工具介绍与源码编译
  • Isaac Lab Newton 人形机器人强化学习 Sim2Real 训练与部署
  • uniapp监听物理返回按钮事件
  • 软考 系统架构设计师系列知识点之杂项集萃(136)
  • 将 Logits 得分转换为概率,如何计算
  • SRE命令行兵器谱之三:grep - 日志海洋中的“精确制导”
  • JavaWeb前端06(ElementPlus快速构建网页)
  • IDM手机端,速度能提高6倍!
  • 消息队列核心技术解析与应用场景
  • JAVA EE初阶 4:文件操作和IO
  • 使用 SVM(支持向量机)进行图像分类:从读取图像到训练与分类的完整流程
  • Python API接口实战指南:从入门到精通
  • HarmonyOS三方库的使用
  • Java SpringAI应用开发面试全流程解析:RAG、流式推理与企业落地
  • 【Java工程师面试全攻略】Day13:云原生架构与Service Mesh深度解析
  • 防火墙技术(二):安全区域
  • 【Linux】系统部分——软硬链接动静态库的使用
  • Tomcat 企业级运维实战系列(四):Tomcat 企业级监控
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?)
  • Tomcat 企业级运维实战系列(三):Tomcat 配置解析与集群化部署
  • Qt实战:如何打开摄像头并实现视频的实时预览
  • 生成式 AI 重构内容生产:效率提升背后的创作版权边界争议
  • react虚拟列表实现及原理
  • leetcode2(移除元素)
  • 本地部署音效生成器 Moodist 并实现外部访问
  • Spring Cloud 和 Dubbo 是目前主流的两大微服务框架,分别代表了两种不同的技术路线
  • HarmonyOS 应用开发:基于API 12及以上的现代化实践