7

正则表达式实例搜集,通过实例来学习正则表达式。

 2 years ago
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.

正则表达式实例搜集,通过实例来学习正则表达式。本仓库实例搜集整理来自于《一些正则表达式随记》,通过一个单独仓库专门整理这些正则实例,提供一个实例网站,方便正则实例验证和查询。也方便添加新的正则实例大家共同维护。

国内镜像站点🇨🇳 · Gitee · Github

如果有一些基础知识,通过实例理解,将会更快速入门,写出自己的正则。如果对基础还不是很了解,你可以通过《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

Email

^([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>

  1. 邮箱以a-z、A-Z、0-9开头,最小长度为1.
  2. 如果左侧部分包含-、_、.则这些特殊符号的前面必须包一位数字或字母。
  3. @符号是必填项
  4. 右则部分可分为两部分,第一部分为邮件提供商域名地址,第二部分为域名后缀,现已知的最短为2位。
    最长的为6为。
  5. 邮件提供商域可以包含特殊字符-、_、.

</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: 0120234234。不包含小数。

^\d{32}$

🚧 E.g: 1223232444475757575757575757575932位纯数字。

数字(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: ABCWANG。大写英文字母。

^[a-z]+$

🚧 E.g: abcwang。小写英文字母。

(^[a-z]|[A-Z0-9])[a-z]*

🚧 E.g: TestsJavaScriptRegEx。大驼峰。

^((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: 8080300065535

^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:5500:23:2324 小时制时间格式 HH:mm:ss,并且验证时间。

^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$

🚧 E.g: 12:54:5501:23:2312 小时制时间格式 HH:mm:ss,并且验证时间。

HTML标记

<(\S*?)[^>]*>.*?</\1>|<.*?/>

🚧 E.g: <div>title</div>, <head>title</head>

License

Licensed under the MIT License.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK