

正则表达式实例搜集,通过实例来学习正则表达式。
source link: https://segmentfault.com/a/1190000040984140
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

正则表达式实例搜集,通过实例来学习正则表达式。本仓库实例搜集整理来自于《一些正则表达式随记》,通过一个单独仓库专门整理这些正则实例,提供一个实例网站,方便正则实例验证和查询。也方便添加新的正则实例大家共同维护。
如果有一些基础知识,通过实例理解,将会更快速入门,写出自己的正则。如果对基础还不是很了解,你可以通过《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
^[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
(([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: [email protected]
^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$
🚧 E.g: [email protected]
<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.
Recommend
-
46
(点击上方公众号,可快速关注) 来源:寒青 https://segmentfault.com/a/1190000012806098...
-
34
本文为 AI 研习社编译的技术博客,原标题 : Regex tutorial — A quick cheatsheet by examples 翻译 | kerr、狒狒 校对...
-
8
正则表达式首发:https://mp.weixin.qq.com/s/kS...这里只单纯介绍正则表达式,不会涉及其他。基本的介绍下正则表达式...
-
7
匹配空格 ♦ 删除所有行首的空格: :%s/^□□*\(.*\)/\1/ 其中,使用^□□*查找行首的一个或多个空格;而\(.*\)将行中的其它内容捕获为组;在替...
-
8
星期日, 六月 14, 2020 VIM学习笔记 正则表达式-(vimgrep/grep) 在UNIX问世的前一年,1969年,Ken Thompson将正则表达式整合入QED文本编辑器...
-
1
学习正则表达式2019年9月4日| 技术|80 阅读本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn
-
4
学习笔记-Java常用正则表达式 - 麦奇 学习笔记-Jav_ Mikey 2022年1月27日 下午 ...
-
6
-
11
【代码】JS通过正则表达式替换字符串 2022-12-11 JS通过正则表达式替换字符串 将<、>、"、&替换成实体字符...
-
2
【笔记】Python3 通过正则表达式替换子串 2023-07-07
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK