关于正则表达式:常用正则表达式汇总

51次阅读

共计 3573 个字符,预计需要花费 9 分钟才能阅读完成。

汇总了罕用的正则,定期更新。

URL 匹配

匹配 http 或 https 结尾得 url,兼容端口号,来自与 Yii2 框架:validators/UrlValidator.php

/^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(?::\d{1,5})?(?:$|[?\/#])/i

QQ 号码

5 到 11 位数字,不能以 0 结尾,其中 11 位的是手机号码,手机号码也能够当作 QQ 号码登录

/^[1-9]\d{4,10}$/

IP 地址

来自于 Yii2 框架:validators/IpValidator.php

IPV4

/^(?:(?:2(?:[0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9])\.){3}(?:(?:2([0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9]))$/

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]))$/

HTML 标签

匹配单标签、双标签的开始标签和完结标签,可用于革除 HTML 标签

/<\/?\w+(\s+\w+=(['"]).*\2)*\s*\/?\s*>/

暴力模式

/<[^>]*>/

中国邮政编码

6 位数字,能够 0 结尾。

其中前两位示意省、市、自治区,第三位代表邮区,第四位代表县、市,最初两位代表投递邮局,最初两位是代表从这个城市哪个投递区投递的,即投递区的地位。

/^\d{6}$/

严格校验

/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/

账号

以数字、字母、下划线组合,长度为 6 -18 位

/^\w{6,18}$/

以数字、字母、下划线组合,不能应用数字结尾,长度为 6 -18 位

/^[a-zA-Z_]\w{5,17}$/

微信号:6 至 20 位,以字母结尾,由字母、数字、减号、下划线组成

/^[a-zA-Z][\w-]{5,19}$/

银行卡号

蕴含对公账户和对私账号

起源:微信领取

/^[1-9]\d{9,29}$/

对立社会信用代码

/^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/

数字

整数,0 到 1 亿

/^(0|[1-9]\d{0,9})$/

小数,0 到 1 亿,小数位能够省略

/^(0|[1-9]\d{0,9})(\.\d{1,2})?$/

手机号码、座机号码

手机号码

/^1[3-9]\d{9}$/

座机号码,区号可选,分机号可选,分隔符反对 -/

/^(\d{3,4}[-\/]?)?\d{7,8}([-\/]\d{2,4})?$/

手机或座机

/^1[3-9]\d{9}$|^(\d{3,4}[-\/]?)?\d{7,8}([-\/]\d{2,4})?$/

手机号码严格模式,将每个号段都列举进去
https://www.jianshu.com/p/1e8…

/^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/

身份证号码

18 位身份证号码

简略匹配

/^[1-9]\d{16}[\dxX]$/

严格匹配,匹配年、月、日格局

/^[1-9]\d{5}[12]\d{3}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dxX]$/

香港

/^[a-zA-Z]\d{6}\([\dA]\)$/

澳门

/^[1|5|7]\d{6}[(\d)]{3}$/

台湾

/^[a-zA-Z][0-9]{9}$/

匹配中文

JavaScript、Java8、Python

/[\u4e00-\u9fa5]/

PHP、Golang

/[\x{4e00}-\x{9fa5}]/u

PHP、Golang,匹配 3 到 5 个中文

/^[\x{4e00}-\x{9fa5}]{3,5}$/u

匹配区间数字

原理就是将数字分段拆分匹配

匹配 1 -5

/^[1-5]$/

匹配 1 -15,拆分为 1 - 9 或 10-15

/^(?:[1-9]|1[0-5])$/

匹配 5 -365,拆分为 5 - 9 或 10-99 或 100-299 或 300-359 或 360-365

/^(?:[5-9]|[1-9]\d|[1-2]\d{2}|3[0-5]\d|36[0-5])$/

匹配后缀名

匹配以特定的后缀名结尾

/\.(jpg|jpeg|png|gif|webp)$/

明码强度

明码能够是任意字符,但必须蕴含字母和数字组合,长度为 8 -32 位

/^(?=.*[0-9].*)(?=.*[a-zA-Z].*).{8,32}$/

明码能够是任意字符,但必须蕴含大写字母、小写字母和数字组合,长度为 8 -32 位

/^(?=.*[0-9].*)(?=.*[a-z].*)(?=.*[A-Z].*).{5,32}$/

火车车次

/^[GCDZTSPKXLY1-9]\d{1,4}$/

护照

蕴含香港、澳门

/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/

电子邮箱

简略匹配

/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/

规范匹配
http://www.regular-expression…

/^[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/

单位名称

格局:长度在 2 -30 之间,只能蕴含中英文、数字、书名号、&、-、顿号、括号

JavaScript、Java8、Python

/^[a-zA-Z0-9《》()()\-、&\u4e00-\u9fa5]{2,30}$/

PHP、Golang

/^[a-zA-Z0-9《》()()\-、&\x{4e00}-\x{9fa5}]{2,30}$/

留神:中文匹配局部须要依据对应语言的写法

单位名称示例:

  • 华为技术有限公司
  • SMC(中国)有限公司
  • TCL 华星光电技术有限公司
  • 深圳创维 -RGB 电子有限公司
  • 中国兵器工业第二〇五研究所

车牌号

新能源

/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][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 挂学警港澳])$/

非新能源

/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0- 9 挂学警港澳]$/

新能源 + 非新能源

/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0- 9 挂学警港澳]$/

正文完
 0