常用正则表达式大全

开发必备正则合集,覆盖手机号、身份证、邮箱等常见验证场景,一键复制,在线测试

手机号3 个
中国大陆手机号
在线测试
^1[3-9]\d{9}$

匹配中国大陆11位手机号码,以1开头,第二位为3-9

✅ 匹配138001380001991234567815088886666
❌ 不匹配12345678901138001380013800138000123800138000
手机号(宽松)
在线测试
^1\d{10}$

宽松匹配所有1开头的11位数字

✅ 匹配1380013800012345678901
❌ 不匹配234567890121380013800138001380001
手机号(含国际区号)
在线测试
^(\+86)?1[3-9]\d{9}$

支持可选的+86国际区号前缀

✅ 匹配13800138000+8613800138000
❌ 不匹配8613800138000008613800138000
身份证2 个
身份证号(18位)
在线测试
^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$

匹配18位二代身份证号码,含出生日期校验

✅ 匹配11010119900307451832010219900101123444010119900101123X
❌ 不匹配11010119900307451110101199013074518010101199003074518
身份证号(15或18位)
在线测试
(^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$)|(^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)

同时兼容15位和18位身份证号码

✅ 匹配110101199003074518110101900307451
❌ 不匹配11010119900307451110101901307451
邮箱2 个
邮箱地址
在线测试
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

匹配常见邮箱格式,支持点号、下划线等特殊字符

✅ 匹配test@example.comuser.name+tag@domain.cohello@sub.domain.org
❌ 不匹配@example.comtest@test@.comtest@com
邮箱(宽松)
在线测试
^\S+@\S+\.\S+$

宽松匹配,只要求包含@和.且无空格

✅ 匹配test@example.coma@b.c
❌ 不匹配@example.comtest@test @example.com
URL2 个
URL地址
在线测试
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$

匹配http和https开头的URL地址

✅ 匹配https://www.example.comhttp://example.com/path?q=1https://sub.domain.com:8080/path
❌ 不匹配ftp://example.comexample.comhttps://
URL(含中文)
在线测试
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=\u4e00-\u9fa5]*)$

扩展支持URL中包含中文字符

✅ 匹配https://example.com/路径http://site.com/搜索?q=你好
❌ 不匹配ftp://example.comnot a url
IP地址3 个
IPv4地址
在线测试
^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$

匹配合法的IPv4地址,每段0-255

✅ 匹配192.168.1.1255.255.255.00.0.0.010.0.0.1
❌ 不匹配256.1.1.1192.168.1192.168.1.1.1abc.def.ghi.jkl
IPv6地址
在线测试
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$

匹配完整格式的IPv6地址

✅ 匹配2001:0db8:85a3:0000:0000:8a2e:0370:7334fe80:0000:0000:0000:0000:0000:0000:0001
❌ 不匹配2001:db8:85a3::8a2e:370:7334192.168.1.1not:an:ipv6:address
IP地址(v4或v6)
在线测试
(^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$)|(^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$)

同时匹配IPv4和IPv6地址

✅ 匹配192.168.1.12001:0db8:85a3:0000:0000:8a2e:0370:7334
❌ 不匹配999.999.999.999not-an-ip
中文字符3 个
中文字符
在线测试
^[\u4e00-\u9fa5]+$

匹配纯中文字符(汉字)

✅ 匹配你好测试中文正则表达式
❌ 不匹配hello你好world123中文!
中文字符(含标点)
在线测试
^[\u4e00-\u9fa5\u3000-\u303f\uff00-\uffef]+$

匹配中文字符及中文标点符号

✅ 匹配你好,世界!中文,。!全角符号A
❌ 不匹配hello中文english123
含中文的字符串
在线测试
[\u4e00-\u9fa5]

检测字符串中是否包含中文

✅ 匹配你好worldtest测试123中文
❌ 不匹配hello123456abc!@#
银行卡2 个
银行卡号
在线测试
^[1-9]\d{15,18}$

匹配16-19位银行卡号(不含空格)

✅ 匹配622202123456789012362220212345678906228480012345678901
❌ 不匹配123456789012345622202123456789012340123456789012345
银行卡号(含空格)
在线测试
^[1-9]\d{3}(\s?\d{4}){3,4}$

匹配带可选空格分隔的银行卡号

✅ 匹配6222 0212 3456 789062220212345678906222 0212 3456 7890 123
❌ 不匹配1234 5678 9012 34562220 2123 4567 890
车牌号3 个
普通车牌号
在线测试
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤川青藏琼宁][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$

匹配中国大陆普通民用车牌号

✅ 匹配京A12345沪B1234D粤A123AB京A1234挂
❌ 不匹配A123456京1A2345京a12345
新能源车牌号
在线测试
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤川青藏琼宁][A-Z][A-HJ-NP-Z0-9]{5}[DF]$

匹配新能源汽车车牌号(6位字符+D/F结尾)

✅ 匹配京AD12345沪BF12345粤AD12345
❌ 不匹配京A123456京AD1234京AD1234A
车牌号(通用)
在线测试
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤川青藏琼宁][A-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳DF]$

兼容普通和新能源车牌号

✅ 匹配京A12345京AD12345沪B1234D
❌ 不匹配A123456京1A2345
密码强度3 个
强密码
在线测试
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

至少8位,包含大小写字母、数字和特殊字符

✅ 匹配Test@1234Hello#2024P@ssw0rd!
❌ 不匹配test1234TEST1234Test1234Te@1
中等密码
在线测试
^(?=.*[a-zA-Z])(?=.*\d)[A-Za-z\d@$!%*?&]{6,}$

至少6位,包含字母和数字

✅ 匹配Test1234abc123Hello1!
❌ 不匹配123456abcdeftest
密码(仅限字母数字)
在线测试
^[A-Za-z0-9]{6,20}$

6-20位,仅限字母和数字

✅ 匹配Test1234abc123AbCdEf123456
❌ 不匹配Test@123abc12345
日期格式3 个
日期(YYYY-MM-DD)
在线测试
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

匹配YYYY-MM-DD格式日期

✅ 匹配2024-01-152023-12-312000-06-01
❌ 不匹配2024-13-012024-00-1524-01-152024/01/15
日期(YYYY/MM/DD)
在线测试
^\d{4}\/(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])$

匹配YYYY/MM/DD格式日期

✅ 匹配2024/01/152023/12/312000/06/01
❌ 不匹配2024/13/012024/00/152024-01-15
日期时间
在线测试
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\s([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$

匹配YYYY-MM-DD HH:mm:ss格式

✅ 匹配2024-01-15 08:30:002023-12-31 23:59:59
❌ 不匹配2024-01-15 24:00:002024-01-15 8:30:02024-01-15
QQ号1 个
QQ号
在线测试
^[1-9]\d{4,10}$

匹配5-11位QQ号,首位不为0

✅ 匹配12345123456789098765432101
❌ 不匹配012341234123456789012abc123
微信号1 个
微信号
在线测试
^[a-zA-Z][a-zA-Z0-9_-]{5,19}$

6-20位,以字母开头,支持字母、数字、下划线和减号

✅ 匹配wechat_01MyWeChatuser-name_2024
❌ 不匹配1wechatabcwechat!a12
邮政编码1 个
邮政编码
在线测试
^[1-9]\d{5}$

匹配6位中国邮政编码,首位不为0

✅ 匹配100000518000200001310000
❌ 不匹配010000123451234567abcdef
MAC地址3 个
MAC地址(冒号分隔)
在线测试
^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$

匹配冒号分隔的MAC地址

✅ 匹配00:1A:2B:3C:4D:5Eaa:bb:cc:dd:ee:ffFF:FF:FF:FF:FF:FF
❌ 不匹配00:1A:2B:3C:4D00:1A:2B:3C:4D:5E:6FGG:HH:II:JJ:KK:LL
MAC地址(短横线分隔)
在线测试
^([0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2}$

匹配短横线分隔的MAC地址

✅ 匹配00-1A-2B-3C-4D-5Eaa-bb-cc-dd-ee-ff
❌ 不匹配00-1A-2B-3C-4D00:1A:2B:3C:4D:5E
MAC地址(通用)
在线测试
^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$

同时匹配冒号和短横线分隔的MAC地址

✅ 匹配00:1A:2B:3C:4D:5E00-1A-2B-3C-4D-5E
❌ 不匹配00:1A:2B:3C:4D001A2B3C4D5E

正则表达式使用说明

基本语法

  • . - 匹配任意单个字符
  • \d - 匹配数字 [0-9]
  • \w - 匹配字母数字下划线
  • * - 匹配前面的表达式 0 次或多次
  • + - 匹配前面的表达式 1 次或多次
  • ? - 匹配前面的表达式 0 次或 1 次
  • {n,m} - 匹配 n 到 m 次
  • [abc] - 匹配 a、b 或 c
  • ^...$ - 匹配字符串的开始和结束

使用提示

  • 点击「复制正则」快速获取正则表达式
  • 点击「在线测试」跳转正则测试工具验证
  • 注意区分大小写:添加 i 标志忽略大小写
  • 全局匹配:添加 g 标志匹配所有结果
  • 实际使用时需考虑边界情况和异常输入
  • 建议在目标环境中充分测试后再使用

常见问题

相关工具