正则表达式详解[从入门到精通]

版权声明:本文出自_莫逸的博客,转载必须注明出处。 https://blog.csdn.net/RedWolfChao/article/details/84340412

关于正则 照着打一遍就行了 真的照着从头到尾敲一遍就会了,前后最多45分钟

如果想测试自己敲的正则是不是正确,除了编程之外,可以在文本编辑器(别用记事本)中’搜索’ 然后点中正则匹配 :

我用的是sublime Ctrl+F是搜索 …
XXX

在这里插入图片描述

在这里插入图片描述

# -------------------------------------------

# # 正则 Regular

# # 基础正则

# \d 匹配一个数字([0-9]])
# \w 匹配一个字母或者数字([0-9a-zA-Z])
# . 匹配任意字符
# '00\d' ->00d(d为数字)
# '\d\d\d' -> ddd(d为数字)
# '\w\w\d' -> wwd(w为字母或者数字,d为数字)
#  '\w\d.' -> wdx(w为字母或者数字,d为数字,x为任意字符)

# \s 匹配一个空格(包括TAB等空白符)

# 特殊字符需要用'\'转义
# 例如'-'->'\-' 
# 再例如'_'->'\_'

# * 表示N个字符(0~N)
# + 表示N个字符(1~N)
# ? 表示0~1个字符(0~1)
# {n} 表示n个字符
# {n,m} 表示n~m个字符

# \s+ 表示至少有一个空格
# \s? 表示'' 或者 ' '
# \d{3,8} 表示 3~8个数字

# 区号(3~4位)-电话号(6~8位)
# \d{3,4}\-\d{6,8}

# # 进阶正则 []精确匹配

# [0-9a-zA-Z\_]  -> [一个数字或者字母或者下划线构成的字符串]
# [0-9a-zA-Z\_]+ -> [(至少)一个数字字母下划线构成的字符串]
# [a-zA-Z\_][0-9a-zA-Z_]* -> [字母或者下划线开头]+[任意多个(可以没有)数字字母下划线构成的字符串]
# [a-zA-Z\_][0-9a-zA-Z\_]{0,19} -> [字母或者下划线开头]+[0~19个数字字母下划线构成的字符串] <总长为1-20>

# A|B 匹配A或者B
# (FUCK|LOVE) YOU -> FUCK YOU 或者 LOVE YOU

# # 整行匹配
# ^ 表示行的开头 ^\d 表示必须以数字开头
# $ 表示行的结尾 \d$ 表示必须以数字结尾

# fuck -> 'fuckxxx','xxfuckxx','xxfuck','fuck' 等
# ^fuck -> 'fuckxxx','fuck' 只能匹配到fuck开头的
# fuck$ -> 'xxfuck','fuck' 只能匹配到fuck结尾的
# ^fuck$ -> 'fuck' 只能匹配到fuck开头并结尾的

# 嗯 撸一个匹配身份证的正则

# 省两位数字,市两位数字,区两位数字,生日8位数字,后面四位数字或者3个数字+X(x)

# 32个省 11是北京 65是新疆 71是台湾 81 82 是港澳(我查了城市Code表..) So...
# (数字开头,X或者数字结尾) 省+4位数字+4位年份(1900-2099)+2位月份() +2位日子+3位数字 +1位数字或者X/x
# 伪 : ^[1-6][0-9] + \d{4} + (19|20)\d{2} + ((0[1-9])|10|11|12) + (([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
# 真 : ^[1-8][0-9]\d{4}(19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
# 简单点 : ^\d{6}(19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
# 诸位有兴趣可以查城市Code表编写一个非常精确地身份证正则匹配...

# 嗯 再撸一个手机号验证

# 1开头,共11位,第二位可能存在(3,4,5,6,7,8,9)...保险起见第二位也应该是随机数字,因为之前用的正则是不包含7,9的 后来公司系统报错,才发现有用户用177的手机号注册系统,麻蛋,谁知道以后三大运行商又要出一个10010010100的号

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

# 手机号测试
18811055820
12763625935
29927192749

# 身份证测试
130704198610021076
13070519991021123X
3318231998100910XX
701823199810091092
999999199210281099

# 整行匹配测试
fuckxxxx
xxfuckxx
xxfuck
fuck



中国城市代码表 传送门

猜你喜欢

转载自blog.csdn.net/RedWolfChao/article/details/84340412