常用正则表达式速查手册
一、校验数字的表达式
| 描述 | 正则表达式 |
|---|
| 任意数字(包括空字符串) | ^[0-9]*$ |
| n 位数字 | ^\d{n}$ |
| 至少 n 位数字 | ^\d{n,}$ |
| m 到 n 位数字 | ^\d{m,n}$ |
| 零或非零开头的数字 | ^(0|[1-9][0-9]*)$ |
| 非零开头、最多带两位小数的数字 | ^([1-9][0-9]*)+(\.[0-9]{1,2})?$ |
| 带 1~2 位小数的正数或负数 | ^(-)?\d+(\.\d{1,2})?$ |
| 正数、负数、小数(可带符号) | ^(-|+)?\d+(\.\d+)?$ |
| 有两位小数的正实数 | ^[0-9]+(\.[0-9]{2})?$ |
| 有 1~3 位小数的正实数 | ^[0-9]+(\.[0-9]{1,3})?$ |
| 非零正整数 | ^[1-9]\d*$ 或 ^\+?[1-9][0-9]*$ |
| 非零负整数 | ^-[1-9]\d*$ |
| 非负整数(含 0) | ^\d+$ 或 ^[1-9]\d*|0$ |
| 非正整数(含 0) | ^-[1-9]\d*|0$ |
| 非负浮点数 | ^\d+(\.\d+)?$ |
| 非正浮点数 | ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ |
| 正浮点数 | ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ |
| 负浮点数 | ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ |
| 浮点数(含正负) | ^(-?\d+)(\.\d+)?$ |
⚠️ 注:部分原始表达式存在语法错误(如缺少转义 \.、括号不匹配等),已按常规正则语义修正。
二、校验字符的表达式
| 描述 | 正则表达式 |
|---|
| 汉字 | ^[\u4e00-\u9fa5]{0,}$ |
| 英文和数字 | ^[A-Za-z0-9]+$ |
| 长度为 3–20 的任意字符 | ^.{3,20}$ |
| 纯英文字母 | ^[A-Za-z]+$ |
| 纯大写英文字母 | ^[A-Z]+$ |
| 纯小写英文字母 | ^[a-z]+$ |
| 数字 + 英文字母 | ^[A-Za-z0-9]+$ |
数字 + 字母 + 下划线(即 \w) | ^\w+$ |
| 中文 + 英文 + 数字 + 下划线 | ^[\u4E00-\u9FA5A-Za-z0-9_]+$ |
| 中文 + 英文 + 数字(不含下划线) | ^[\u4E00-\u9FA5A-Za-z0-9]+$ |
禁止包含 ^%&',;=?$" 等字符 | [^%&',;=?$\x22]+ |
禁止包含 ~ 字符 | [^~\x22]+ |
三、特殊需求表达式
| 用途 | 正则表达式 |
|---|
| Email 地址 | ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ |
| 域名 | [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.? |
| URL(简单) | [a-zA-Z]+://[^\s]* |
| URL(HTTP 详细) | ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ |
| 手机号码(中国大陆) | ^(13[0-9]|14[57]|15[0-9]|18[0-9])\d{8}$ |
| 国内固定电话(如 0511-4405222) | \d{3}-\d{8}|\d{4}-\d{7} |
| 通用电话号码(支持区号、分机) | ^(\d{11}|((\d{7,8})|(\d{3,4})-(\d{7,8})(-(\d{1,4}))?))$ |
| 身份证号(15/18 位,末位可为 X) | (^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|[Xx])$) |
| 账号(字母开头,5–16 字节,字母/数字/下划线) | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ |
| 密码(字母开头,6–18 位,仅字母/数字/下划线) | ^[a-zA-Z]\w{5,17}$ |
| 强密码(必须含大小写字母+数字,无特殊字符,8–10 位) | ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$ |
| 强密码(必须含大小写字母+数字,可含特殊字符,8–10 位) | ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ |
| 日期格式(YYYY-MM-DD) | ^\d{4}-\d{1,2}-\d{1,2}$ |
| 月份(01–12 或 1–12) | ^(0?[1-9]|1[0-2])$ |
| 日期(1–31) | ^((0?[1-9])|((1|2)[0-9])|30|31)$ |
| XML 文件名 | ^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.[xX][mM][lL]$ |
| 中文字符 | [\u4e00-\u9fa5] |
| 双字节字符(含汉字) | [^\x00-\xff] |
| 空白行 | \n\s*\r |
| HTML 标签 | <(\S*?)[^>]*>.*?</\1>|<.*? /> |
| 行首/行尾空白字符 | ^\s*|\s*$ |
| 腾讯 QQ 号(≥10000) | [1-9][0-9]{4,} |
| 中国邮政编码(6 位) | [1-9]\d{5}(?!\d) |
| IPv4 地址 | ((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3} |