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

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.xdnf.cn/news/19366.html

相关文章:

  • 【基础-单选】关于Tabs组件页签的位置设置,下面描述错误的是
  • 免费在线图片合成视频工具 ,完全免费
  • uni.onBLECharacteristicValueChange接收到数据,返回的value为{}的原因及其获取方法
  • 佳易王钟表维修养护管理系统:开启钟表维修高效管理新篇章​就#软件操作教程
  • Mysql 学习day 2 深入理解Mysql索引底层数据结构
  • React前端开发_Day6-Day9_极客园项目
  • C语言 - 输出参数详解:从简单示例到 alloc_chrdev_region
  • Spring AI 的应用和开发
  • 如何简单建设一个网站,让用户快速找到你。
  • 在PowerPoint和WPS演示让蝴蝶一直跳8字舞
  • Python生成免安装exe
  • SAP PP模块的MPS
  • Vue加载速度优化,verder.js和element.js加载速度慢解决方法
  • 防火墙技术(二):安全区域
  • C#调用c++ dll读取2进制文件时而正常,时而异常
  • 语义分割目前还是研究热点吗?
  • 如何快速了解项目管理基础
  • 【具身智能】【机械臂】机械臂轨迹规划项目以及资料汇总【持续更新】
  • 【物联网】MQTT / Broker / Topic 是什么?
  • windows 谷歌浏览器把英文改成中文
  • 【路由器】TP Link 路由器为何无法进入管理后台
  • 关于铭飞平台企业官网模板使用中常到的问题、企业官网的百度认证以及IDEA编辑启动器的快捷方法/Apipost本地和云端没法同步的问题解决
  • 【软考架构】SOA与微服务解疑
  • React Hooks深度解析与最佳实践:提升函数组件能力的终极指南
  • Unity笔记(八)——资源动态加载、场景异步加载
  • 迷你电脑用到什么型号的RJ45网口
  • 揭秘表格推理的“思维革命”:RoT模型介绍
  • seafile-setup-troubleshooting_# Seafile 安装与问题解决记录 # Seafile/Seahub 启动问题记录文档
  • linux基础——UDP、TCP
  • JavaScript之性能优化