全网最全的正则表达式

本文首发自公众号【一个老码农】

文中的\d、\W等双反斜杠转义的适用于oc、swift、java等语言。而js、php、go等语言需要用单反斜杠,即\d、\W。而\d或\d与0-9等价,均代表数字可相互替换。关于正则基础语法,可自行查询。下面我来介绍下工作中常用的正则表达式。

  • 手机号

    ^1(3|5|7|8)[0-9]{9}$
    

解释:
手机号以13、15、17、18开头,后面则是9位0-9的数字。其中[0-9]也可以改为[\d]。{9}代表后9位

  • 邮箱

    ^[a-zA-Z_-\\d]+@[a-zA-Z_-\\d]+(\\.[a-zA-Z\\d_-]+)+$
    

解释:
邮箱一般格式为

  1. xxxx@xxx.xxx,如:123456789@qq.com
  2. xxx@xxx.xxx.xx 如 abc@ddd.com.cn

有些邮箱只允许英文和字母,而有些邮箱允许包含下划线"_"和杠"-"

^[a-zA-Z_-\d]+ 以代表以字母、"_"、"-"、数字开头,后面的"+"代表一个字条符及以上

@[a-zA-Z_-\d]+ 代表@后面的字符以字母、"_"、"-"、数字组成,后面的"+"代表一个字条符及以上

(\.[a-zA-Z0-9_-]+) 代表"."后面的字符以字母、数字、"_"、"-"组成,最后的"+"代表一个字符以上

最后面的"+"号代表 括号里面的.xxx,可能有多个,如.com.cn

邮箱后缀一般由两位或三位字符组成,如: .com,.net,.cn,.me等,所以邮箱正则也可以改成这样:

^[a-zA-Z_-\d]+@[a-zA-Z_-\d]+(\.[a-zA-Z\d_-]{2,3})+$

  • 网址

网址一般以http://或https://开头,所以正则可以这样写:

^(http(s)?:\\/\\/)

解释:(s)? 代表 “s”长度为0~1,也就是说s可有可无。

后面两个\/\/,代表"//",因为“/”需要转义,在oc、swift、java等语言中需要两个反斜杠,js、php等语言只需要一个反斜杠。

更加严谨的网址正则,如域名的匹配、query参数匹配,在此就不做介绍了。

  • 密码强度

1.密码为8-32位,且必须包含大写字母、小写字母、数字、特殊符号(包含下划线)

^(?![A-Za-z0-9]+$)(?![a-z0-9\\W_]+$)(?![A-Za-z\\W_]+$)(?![A-Z0-9\\W_]+$)[a-zA-Z0-9\\W_]{8,32}$

解释:^(?![A-Za-z0-9]+)(?![a-z0-9\\W_]+)(?![A-Za-z\W_]+)(?![A-Z0-9\\W_]+) 代表排除只包含一种字符的情况、只包含两种字符的情况、只包含三种字符的情况

其中(?![A-Za-z0-9]+$) 排除大写字母、小写字母、数字三种字符的任意组合方式

?![a-z0-9\W_]+$)排除小写字母、数字、特殊字符 三种的任意组合方式

(?![A-Za-z\W_]+$) 排除大写字母、小写字母、特殊字符三种的任意组合方式

(?![A-Z0-9\W_]+$) 排除大写字母、数字、特殊字符三种的任意组合方式

[a-zA-Z0-9\W_] 代表字符串由小写字母、大写字母、数字、特殊符号和下划线组成

排除任意三种方式组合的情况后,只剩下四种字符都有的情况

{8,32}代表字符串为8至32位

  1. 密码为8-32位,且至少包含大写字母、小写字母、数字、特殊符号(包含下划线)中的三种
^(?![a-zA-Z]+$)(?![A-Z\\d]+$)(?![A-Z_\\W]+$)(?![a-z\\d]+$)(?![a-z_\\W]+$)(?![\\d_\\W]+$)[a-zA-Z\\d_\\W]{8,32}$

解释:代表排除只包含大写字母、小写字母、数字、特殊符号中的一种和两种的情况,包含三种、四种的情况则匹配通过

其中 (?![a-zA-Z]+$) 代表排除大写字母、小写字母其中一种或两中组合的情况

(?![A-Z\d]+$) 代表排除大写字母、数字其中一种或两中的情况,其中\d可以用0-9代替

(?![A-Z_\W]+$) 代表排除大写字母、特殊字符一种或两种组合的情况

(?![a-z\d]+$)代表排除小写字母和数字一种或两种组合的情况

(?![a-z_\W]+$)代表排除小写字母、特殊字符一种或两种组合的情况

(?![\d_\W]+$)代表排除字母、特殊字符一种或两种组合的情况

一种和两种组合的情况都排除之后,就剩下三种和四种组合的情况了

3.密码为8-32位,且至少包含大写字母、小写字母、数字、特殊符号(包含下划线)中的两种

^(?![a-z]+$)(?![A-Z]+$)(?![\\W_]+$)(?![\\d]+$)[a-zA-Z\\d_\\W]{8,32}$

解释:与上面两个逻辑类似,排除所有单一字符情况后,剩下的就是两种组合、三种组合、四种组合的情况。

  • 包含某类字符

1.包含大写字母匹配

(?=.*[A-Z])

2.包含小写字母匹配

(?=.*[a-z])

3.包含特殊字符或下划线匹配

//如果不匹配下划线可将后面的"_"去掉
(?=.*[\\W_])
  1. 包含数字匹配
(?=.*[\\d])

原文地址

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容