C# 常用正则表达式实用合集

周叙
周叙
发布时间:2026-10-14| 3人浏览过
原创

在 C# 开发中,正则表达式是处理字符串验证、数据提取和文本清洗的核心工具。本文精选了日常开发中最高频使用的正则模式,包括中英文混合处理、常见格式校验(如身份证、邮编、IP)及数值范围匹配,并提供相应的使用建议,助您快速构建健壮的文本处理逻辑。

结果或目标

通过掌握以下正则表达式,您可以快速解决常见的文本校验需求,例如判断用户输入的账号是否合法、提取日志中的 IP 地址、过滤无效的空行或清理 HTML 标签。这些表达式可直接嵌入 C# 的 Regex 类中使用。

准备条件

  1. 确保项目已引入命名空间:using System.Text.RegularExpressions;
  2. 熟悉基础的正则语法结构,如量词 {n}、锚点 ^/$ 和字符类 [...]。

真实操作顺序:常用正则表达式详解

第1步:通用字符与空白处理

在处理多语言文本或清理用户输入时,经常需要识别非 ASCII 字符或控制空白符。

  • 匹配中文字符:
    [\u4e00-\u9fa5]
    评注:这是匹配单个汉字的经典写法,常用于统计中文内容或进行分词预处理。
  • 匹配双字节字符(含汉字):
    [^\x00-\xff]
    评注:可用于计算字符串长度,因为一个双字节字符通常计为 2,而 ASCII 字符计为 1。
  • 匹配空白行:
    \n\s*\r
    评注:配合 Regex.Replace 可有效删除文档中的多余空行。
  • 匹配首尾空白字符:
    ^\s*|\s*$
    评注:用于去除字符串开头和结尾的空格、制表符或换页符,非常实用的清洗手段。

第2步:日期与时间信息提取

从非结构化文本中提取标准日期格式。

  • 获取日期正则表达式:
    \d{4}[年|\-|\.]\d{1,12}[月|\-|\.]\d{1,31}日?
    评注:可匹配大多数“YYYY-MM-DD”、“YYYY.MM.DD”或包含中文“年月日”的格式。注意此表达式较宽松,具体应用时需结合业务逻辑进一步限制月份和日期范围的合法性。

第3步:网络标识与联系方式验证

针对电商、社交或后台管理系统中常见的用户输入字段进行校验。

  • 匹配 Email 地址:
    \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    评注:适用于绝大多数标准邮箱格式的表单验证。
  • 匹配网址 URL:
    [a-zA-z]+://[^\s]*
    评注:能基本满足提取 HTTP/HTTPS 链接的需求,但对于复杂查询参数或协议变体可能需要更细致的调整。
  • 匹配国内电话号码:
    \d{4}-\d{7}|\d{3}-\d{8}
    评注:用于匹配如 0511-4405222(区号4位)或 021-87888822(区号3位)等固话格式。
  • 匹配腾讯 QQ 号:
    [1-9][0-9]{4,}
    评注:QQ 号通常以非零数字开头,且长度大于等于 5 位。
  • 匹配中国邮政编码:
    [0-9]\d{5}(?!\d)
    评注:精确匹配 6 位数字,负向前瞻断言确保后面不紧跟其他数字。

第4步:身份与设备标识解析

  • 匹配身份证号码:
    \d{17}[\d|X]|\d{15}
    评注:支持 15 位旧版身份证和 18 位新版身份证(末位可为 X)。实际业务中建议结合校验码算法进行更深度的验证。
  • 匹配 IP 地址:
    ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
    评注:这是较为严谨的 IPv4 匹配方式,确保每个段在 0-255 之间,比简单的 \d+.\d+.\d+.\d+ 更安全。

第5步:数值与字符串类型校验

在进行数据录入或数学运算前,对输入内容的类型进行严格约束。

特定数字匹配

  • 正整数:^[1-9]\d*$
  • 负整数:^-?[1-9]\d*$ (注:原文此处有歧义,通常负整数以负号开头,见下方综合整数)
  • 整数(含正负零):^-?[1-9]\d*$ 或更严格的 ^-?\d+$
  • 非负整数(正整数 + 0):^[1-9]\d*|0$
  • 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
  • 浮点数:^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
    评注:处理大量数值数据时有用,具体应用时请注意修正边界情况。

特定字符串匹配

  • 纯英文字母:^[A-Za-z]+$
  • 纯大写英文字母:^[A-Z]+$
  • 纯小写英文字母:^[a-z]+$
  • 数字和英文字母组合:^[A-Za-z0-9]+$
  • 数字、字母或下划线:^\w+$
    评注:常用于匹配变量名、文件名或简化的用户名规则。

第6步:账号与特殊格式限定

  • 匹配帐号是否合法:
    ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
    评注:要求字母开头,总长度 5-16 位(首字符+4到15个后续字符),允许包含数字和下划线。这是许多系统注册名的基础规则。
  • 匹配 HTML 标记:
    <(\S*?)[^>]*>.*?</>|<.*? />
    评注:网上流传的版本往往无法完美处理复杂的嵌套标记,上述表达式仅能匹配部分简单闭合标签或自结束标签。若需完整解析 HTML,建议使用专业的 HTML 解析库(如 HtmlAgilityPack)而非纯正则。

完成判断

当您的应用程序能够正确通过上述正则表达式验证用户输入,或准确从原始文本中提取出所需的关键数据块时,即表示配置成功。建议在单元测试中覆盖边界案例(如空字符串、超长字符串、特殊符号)以确保鲁棒性。

简要总结

以上就是 C# 常用正则表达式大全的详细内容,更多关于 C# 字符串处理技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。