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. 使用时可根据实际场景调整规则(如手机号可补充国际号码格式)。
相关推荐
谢亮_vipxieliang15 小时前
手机号验证技术方案:号段规则与正则表达式
java·服务器·spring boot·正则表达式·hibernate
zx_7414848117 小时前
【Python 入门】Python 正则表达式零基础讲解:基础语法 + 元字符 + 常用案例
python·正则表达式
deli00700717 小时前
正则表达式可视化测试工具:输入即匹配,高亮一目了然
git·测试工具·正则表达式
ydd1001003 天前
正则表达式匹配
正则表达式·代理模式
落魄大学生之流水线上谋生计3 天前
正则表达式完全指南:从入门到精通
正则表达式
tianyu2345 天前
Java 正则表达式终极指南:从 Pattern 到 Matcher,从双重转义到性能优化,一篇全搞定
java·开发语言·正则表达式·group·find·pattern·matcher
OPEN-F6 天前
Python进阶教程:正则表达式进阶与文本处理
开发语言·python·正则表达式
小小龙学IT9 天前
C++ 正则表达式完全指南:从 std::regex 实战到 RE2 引擎原理(NFA/DFA/回溯陷阱)
c++·正则表达式
傻啦嘿哟9 天前
猫眼电影TOP100爬虫:Requests+正则表达式实战
爬虫·正则表达式
circuitsosk9 天前
AI输出的“质检员”:构建智能体质量评估、异常检测与人工兜底的三层防线
人工智能·python·microsoft·正则表达式·langchain