C# 数据验证常用正则表达式

以下是通用数据校验正则表达式整理,包含你提供常见使用场景的数字类规则、字符串、日期、网络地址等,方便日常开发使用:

一、数字类校验(包含你提供的规则)

|-----------------|-----------------------------------------------------------------------------------------|--------------------------------------|
| 校验场景 | 正则表达式 | 说明 |
| 1. 纯数字 | ​​^[0-9]$​​ | 单个数字(0-9) |
| 2. n位数字 | ​​^\d{n}$​​ | 固定n位数字(如​​^\d{3}$​​匹配3位数字) |
| 3. 至少n位数字 | ​​^\d{n,}$​​ | 位数≥n(如​​^\d{2,}$​​匹配2位及以上数字) |
| 4. m-n位数字 | ​​^\d{m,n}$​​ | 位数在m到n之间(如​​^\d{2,4}$​​匹配2-4位数字) |
| 5. 零或非零开头的数字 | ​​^0|[1-9][0-9]*$​​ | 允许"0"或"非0开头的正整数" |
| 6. 非零开头、最多两位小数 | ​​^[1-9][0-9]*(\.[0-9]{1,2})?$​​ | 整数部分非0开头,小数部分最多2位(如123、123.4、123.45) |
| 7. 带1-2位小数的正/负数 | ​​^(-?)d+(\.\d{1,2})?$​​​(修正:​​^(-?)\d+(\.\d{1,2})?$​​) | 允许正负整数、正负1-2位小数(如-123、123.4、-123.45) |
| 8. 正/负数、小数 | ​​^(-|\+)?d+(\.\d+)?$​​(修正:`^(- | \+)?\d+(\.\d+)?\`) | | 9. 两位小数的正实数 | ​`​^[0-9]+(\.[0-9]{2})?​ | 正整数或带2位小数的正数(如123、123.45) | | 10. 1-3位小数的正实数 | ​​^[0-9]+(.[0-9]{1,3})?​`​ | 正整数或带1-3位小数的正数(如123、123.4、123.456) | | 11. 非零正整数 | ​`​^[1-9]\d*​​ 或 ​​^[1-9][0-9]​`​​ 或 ​`​^\+?[1-9][0-9]*​ | 非0开头的正整数(如1、123) | | 12. 非零负整数 | ​​^-[1-9][0-9]​`​​ 或 ​`​^-[1-9]\d*​ | 非0开头的负整数(如-1、-123) | | 13. 非负整数 | ​​^\d+​`​​ 或 ​`​^[1-9]\d*|0​ | 正整数或0(如0、123) | | 14. 非正整数 | ​​^-[1-9]\d*|0​`​​ 或 ​`​^(-\d+)|(0+)​ | 负整数或0(如0、-123) | | 15. 非负浮点数 | ​​^\d+(.\d+)?​`​​ 或 ​`​^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0​ | 正小数、正整数、0(如0、123、123.45) | | 16. 非正浮点数 | ​​^(-\d+(.\d+)?)?(0+(.0+)?)?​`​​ 或 ​`​^(-[1-9]\d*\.\d*|0\.\d*[1-9]\d*)|0?\.0+|0​ | 负小数、负整数、0(如0、-123、-123.45) | | 17. 正浮点数 | ​​^[1-9]\d*.\d*|0.\d*[1-9]\d*​`​ 或 \`\^((\[0-9\]+\\.\[0-9\]*\[1-9\]\[0-9\]*) | (\[0-9\]*\[1-9\]\[0-9\]*\\.\[0-9\]+) | | 18. 负浮点数 | ​`​^-[1-9]\d*\.\d*|0\.\d*[1-9]\d*​ 或 \^(-((0-9+\.0-91-90-9) | (0-91-90-9\.0-9+) |
| 19. 浮点数 | ​​^(-?\d+)(\.\d+)?$​​​ 或 ​​^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*)|0?\.0+|0$​​ | 正负整数、正负小数、0(如-123、0、123.45) |

二、字符串类校验

|--------------|---------------------------------------------|---------------------|
| 校验场景 | 正则表达式 | 说明 |
| 1. 纯字母(大小写) | ​​^[A-Za-z]+$​​ | 仅包含英文字母(如abc、ABC) |
| 2. 纯中文 | ​​^[\u4e00-\u9fa5]+$​​ | 仅包含中文字符(如"你好") |
| 3. 字母+数字 | ​​^[A-Za-z0-9]+$​​ | 仅包含英文字母和数字(如abc123) |
| 4. 字母+数字+下划线 | ​​^\w+$​​​ (等价于​​^[A-Za-z0-9_]+$​​) | 匹配"单词字符"(如abc_123) |
| 5. 不包含特殊字符 | ​​^[A-Za-z0-9\u4e00-\u9fa5]+$​​ | 仅包含字母、数字、中文(无特殊符号) |
| 6. 固定长度字符串 | ​​^.{n}$​​​ (如​​^.{5}$​​匹配5个任意字符) | 长度固定为n的字符串 |
| 7. 长度范围字符串 | ​​^.{m,n}$​​​ (如​​^.{2,5}$​​匹配2-5个任意字符) | 长度在m到n之间的字符串 |

三、日期/时间类校验

|-------------------|----------------------|---------------------|
| 校验场景 | 正则表达式 | 说明 |
| 1. 日期(yyyy-MM-dd) | `^\d{4}-(01-9 | 10-2)-(01-9 |
| 2. 日期(yyyy/MM/dd) | `^\d{4}/(01-9 | 10-2)/(01-9 |
| 3. 时间(HH:mm:ss) | `^(00-9 | 10-9 |
| 4. 时间(HH:mm) | `^(00-9 | 10-9 |

四、网络/地址类校验

|---------------|-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
| 校验场景 | 正则表达式 | 说明 |
| 1. 邮箱地址 | ​​^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$​​ | 标准邮箱格式(如test@example.com) |
| 2. 手机号(国内) | ​​^1[3-9]\d{9}$​​ | 国内11位手机号(如13800138000) |
| 3. IP地址(IPv4) | `^((250-5 | 20-4\d |
| 4. URL(网址) | ​​^(http|https):\/\/([\w-]+\.)+[\w-]+(\/[\w-./?%&=]*)?$​​ | 以http/https开头的网址(如​​https://www.example.com​​) |

五、注意事项
  1. 正则表达式中的特殊符号(如​|​​(​)需根据语言转义(如C#中需用​\\​代替​\​);
  2. 部分规则(如日期)仅做格式校验,如需精准合法性(如2月30日)需结合业务代码;
  3. 使用时可根据实际场景调整规则(如手机号可补充国际号码格式)。
相关推荐
Patrick在香港4 小时前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
梦帮科技2 天前
Next.js 16 模块化单体实战:App Router、领域模块与 Route Handler 分层
css·数据结构·链表·正则表达式·node.js·json·html5
yume_sibai8 天前
正则表达式完全指南(基础语法 + 实战应用 + 性能优化 + 最佳实践)
开发语言·正则表达式·c#
研☆香9 天前
js中使用的正则表达式
开发语言·javascript·正则表达式
2601_9622935314 天前
浅学python | 正则表达式集锦
正则表达式·字符串匹配·python知识·浅学python·ip地址检查
2601_9622955814 天前
Python中正则表达式的知识汇总分享
python·正则表达式·模块·语法·匹配
启观川14 天前
Python基础-第 16 章 综合案例:客户信息管理系统
开发语言·笔记·python·正则表达式
2601_9622940514 天前
Python 操作 Word:如何查找、替换和批量修改文本
python·正则表达式·word·文档处理·查找替换
for_ever_love__18 天前
python基础语法学习: 正则表达式
python·学习·正则表达式
asdfg125896320 天前
一个例子通俗理解Java中正则表达式用法
java·正则表达式