正则表达式实例搜集,通过实例来学习正则表达式。本仓库实例搜集整理来自于《一些正则表达式随记》,通过一个单独仓库专门整理这些正则实例,提供一个实例网站,方便正则实例验证和查询。也方便添加新的正则实例大家共同维护。
如果有一些基础知识,通过实例理解,将会更快速入门,写出自己的正则。如果对基础还不是很了解,你可以通过《Learn regex the easy way》去学习基础知识,这个仓库教程被翻译成十几种语言了,包含了中文翻译,它通过极其简单的实例,帮助你理解正则基础语法规则。
Example
身份证号
^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
🚧 E.g: 42112319870115371X
用户名
^[a-zA-Z0-9_-]{4,16}$
🚧 E.g: jaywcjlove
。验证 数字、字母、_、-,不包含特殊字符,长度 4-16
之间。
微信号
^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$
🚧 E.g: jslite
。微信号正则,6至20位,以字母开头,字母,数字,减号,下划线。
密码强度(宽松)
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
🚧 E.g: diaoD123
, Wgood123
。必须是包含大小写字母和数字的组合,长度在 8-10
之间。
^[0-9a-zA-Z\u4E00-\uFA29]*$
🚧 E.g: diaoD123
, Wgood123
。数字字母中文。
密码强度(包含特殊字符)
^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$
🚧 E.g: diaoD123#
, Wgood123#$
。密码强度正则,最少6
位,包括至少1
个大写字母,1
个小写字母,1
个数字,1
个特殊字符。
火车车次
^[GCDZTSPKXLY1-9]\d{1,4}$
E.g: G2868
, D22
, D9
, Z5
, Z24
, Z17
汉字中文
^[\u4e00-\u9fa5]{0,}$
🚧 E.g: 中文
, 湖北
, 黄冈
。不限制文字长度。
^[\u4e00-\u9fa5]{2,6}$
🚧 E.g: 中文
, 湖北黄冈
。2到6位汉字
中文名字
^(?:[\u4e00-\u9fa5·]{2,16})$
🚧 E.g: 周杰伦
, 古丽娜扎尔·拜合提亚尔
, 拉希德·本·穆罕默德·本·拉希德
。
英文姓名
(^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$)
🚧 E.g: Gene Kelly
, Fred Astaire
, Humphrey Bogart
, GaryCooper
, Cary Grant
, Joan Crawford
URL
^[a-zA-Z]+:\/\/
🚧 E.g: http://www.abc.com
, http://
, https://
^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
🚧 E.g: https://github.com
, https://github.com/jaywcjlove
^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$
🚧 E.g: blog.csdn.net
Mac地址匹配
^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$
🚧 E.g: dc:a9:04:77:37:20
图片后缀
(.jpg|.gif|.png|.jpeg)+(\?|\#|$)
🚧 E.g: a/b/c.jpg?
, a/b/c.png
, a/b/c.png?good=1
传真号码
^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$
🚧 E.g: 086-021-5055452
, 021-5055452
。国家代码(2到3位),区号(2到3位),电话号码(7到8位),分机号(3位)
手机号码
^1[34578]\d{9}$
🚧 E.g: 13611778887
^((\+?[0-9]{1,4})|(\(\+86\)))?(13[0-9]|14[57]|15[012356789]|17[03678]|18[0-9])\d{8}$
🚧 E.g: 13611779993
, +8613611779993
<details>
<summary>实例&详细说明</summary>
- 13段:130、131、132、133、134、135、136、137、138、139
- 14段:145、147
- 15段:150、151、152、153、155、156、157、158、159
- 17段:170、176、177、178
- 18段:180、181、182、183、184、185、186、187、188、189
- 国际码 如:中国(+86)
</details>
IPv4 地址
(\b25[0-5]|\b2[0-4][0-9]|\b[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}
🚧 E.g: 192.168.1.1
, 127.0.0.1
, 0.0.0.0
, 255.255.255.255
, 1.2.3.4
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
🚧 E.g: 192.168.1.1
, 127.0.0.1
, 0.0.0.0
, 255.255.255.255
, 1.2.3.4
IPv6
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
🚧 E.g: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
, FE80:0000:0000:0000:0202:B3FF:FE1E:8329
。
^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$
🚧 E.g: wowohoo@qq.com
^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$
🚧 E.g: wowohoo@qq.com
<details>
<summary>实例 & 详细说明</summary>
- 邮箱以a-z、A-Z、0-9开头,最小长度为1.
- 如果左侧部分包含-、_、.则这些特殊符号的前面必须包一位数字或字母。
- @符号是必填项
- 右则部分可分为两部分,第一部分为邮件提供商域名地址,第二部分为域名后缀,现已知的最短为2位。
最长的为6为。 - 邮件提供商域可以包含特殊字符-、_、.
</details>
十六进制颜色
^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
🚧 E.g: #b8b8b8
, #333
^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
🚧 E.g: #b8b8b8
, #333
日期
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
🚧 E.g: 2017-02-29
。对月份及日期验证。
版本号
^\d+(?:\.\d+){2}$
🚧 E.g: 0.1.2
。格式必须为 X.Y.Z
。
车牌号
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](?:((\d{5}[A-HJK])|([A-HJK][A-HJ-NP-Z0-9][0-9]{4}))|[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳])$
🚧 E.g: 鄂A34324
, 沪E13359F
。包含新能源车牌。
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$
🚧 E.g: 鄂A34324
, 沪E13595
。不包含新能源车牌。
小数点后几位
^[0-9]+(.[0-9]{2})?$
🚧 E.g: 1.22
, 0223.23
。精确到 2
位小数
小数
^\d+\.\d+$
🚧 E.g: 0.0
, 0.23
, 10.54
。
(-?\d+)(\.\d+)?
🚧 E.g: -0.0
, 0.23
, -10.54
。
正整数
[0-9]*[1-9][0-9]*
🚧 E.g: 23
负整数
-[0-9]*[1-9][0-9]*
🚧 E.g: -23
, -2.34
整数
-?\d+
🚧 E.g: 23
, 12
, -12.55
非负整数(正整数或零)
\d+
🚧 E.g: 23
, 3.322
数字
^\d{1,}$
🚧 E.g: 0120
,234234
。不包含小数。
^\d{32}$
🚧 E.g: 12232324444757575757575757575759
。32位纯数字。
数字(QQ号码)
^[1-9][0-9]{4,10}$
🚧 E.g: 398188661
。QQ号正则,5至11位。
^\d{5,11}$
🚧 E.g: 398188661
。更简单的 QQ 号码正则,5~11位数字组成。
中国邮政编码
[1-9]\d{5}(?!\d)
🚧 E.g: 200000
。中国邮政编码为 6 位数字。
英文字母
^[A-Z]+$
🚧 E.g: ABC
,WANG
。大写英文字母。
^[a-z]+$
🚧 E.g: abc
,wang
。小写英文字母。
(^[a-z]|[A-Z0-9])[a-z]*
🚧 E.g: Tests
,JavaScript
,RegEx
。大驼峰。
端口号
^((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([0-5]{0,5})|([0-9]{1,4}))$
🚧 E.g: 8080
,3000
,65535
迅雷链接
^thunderx?:\/\/[a-zA-Z\d]+=$
🚧 E.g: 8080
。
ed2k链接
^ed2k:\/\/\|file\|.+\|\/$
🚧 E.g: ed2k://|file|[xxx.com][%E8%8B%B1%E9%9B%84%E6%9C%AC%E8%89%B23.mp4|/
。
磁力链接
^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$
🚧 E.g: magnet:?xt=urn:btih:608FA22181A2614BAE9160763F04FCB7ED296B9E
时间
^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$
🚧 E.g: 21:54:55
,00:23:23
。24
小时制时间格式 HH:mm:ss
,并且验证时间。
^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$
🚧 E.g: 12:54:55
,01:23:23
。12
小时制时间格式 HH:mm:ss
,并且验证时间。
HTML标记
<(\S*?)[^>]*>.*?</\1>|<.*?/>
🚧 E.g: <div>title</div>
, <head>title</head>
。
工具推荐
- RegExp 线上正则表达式学习利器。
- Regulex*%3F%24) JavaScript 正则表达式可视化工具。
- Rubular Ruby 正则表达式编辑器。
- Regex101 多语言支持、构建、调试并共享正则。
- Regexper 正则表达式可视化工具。
- RegEx Pal 正则表达式调试及练习示例。
- Regular Expression Tester 在线正则表达式测试仪。
- iHateRegex 正则表达式备忘清单。
- 以简单的方式学习正则表达式
- Expressions APP 正则表达式应用 for Mac
License
Licensed under the MIT License.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。