正则表达式
目录
简单来说,正则表达式就是记录本文规则的代码
元字符
.
匹配除换行符意外的字符\w
匹配字母或下划线或汉字\s
匹配任意的空白符\d
匹配数字\b
匹配单词的开始和结束^
匹配字符串的开始$
匹配字符串的结束- eg.
\ba\w*\b
匹配以字母a开头的单词—先是某个单词开始处(\b), 然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结尾处\b\w{6}\b
匹配6个字符的单词\d+
匹配1个或多个连续的数字。这里的+是和*类似的元字符,不同的是+代表1次或多次,*代表0次或多次\d{5,12}
匹配5-12个数字
字符转义
\
匹配元字符本身
eg. yang419.com匹配yang419.com
重复
*
0次或多次+
一次或多次?
0次或1次{n}
重复n次{n,}
n or more{n,m}
n - m
字符类
[aeiou]匹配任何一个元音字母
[,?!]匹配标点符号(,or?or!)
例如: \(?0\d{2}-]?\d{8}
匹配到像(010)88886666, 022-22334455, 02912345678
分支条件
分支条件指有几种规则,如果满足其中任意一种规则都应该当成匹配,用|把不同规则分开
例如0\d{2}-\d{8}|0\d{2}[-]?\d{8}
能匹配两种格式的电话号码1. 三位区号+8位本地号 2.四位区号+7位本地号
分组
目的是重复多个字符
例如(\d{1,3}\.){3}\d{1,3}
\d{1,3}意思是匹配1-3位数字,(\d{1,3}.){3}这1-3位数字加.重复三次
反义
目的是排除某类字符
\W
匹配任意
字母,数字,下划线,汉字的字符不是 \S
匹配任意不是空白符的字符\D
匹配任意不是数字的字符\B
匹配任意不是单词开头或结束的位置[^x]
匹配除x以外字符[^aeiou]
匹配除aeiou以外字符