常用通配符
1.b (元字符)表示单词的边界
单词的开头或结尾,也就是单词的分界处,通常是空格/标点符号/换行,但是b不匹配这些分割字符中的任何一个,只是匹配一个位置
例如:bhib 只是匹配hi这个单词,不会匹配 history中的"hi"
2. .(点)匹配除了换行符以外的任意字符
3. *(星号)匹配的是数量,指前面的内容可以连续重复使用任意次来使整个表达式得到匹配
(.*)表示任意数量的不包含换行的字符
例子:
bhib.*bLucyb
上面表示hi后面有人一个除换行之外的其他字符,后面接着一个Lucy
4. d 匹配一个数字
d{2}表示连续匹配两次数字,等同于 dd,d{5,12}匹配5到12位数字
5. s 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等
6. w 匹配字母或者数字或者下划线或者汉字
7. + 匹配1个或者更多连续的数字
8. ^匹配字符串的开始
9. $ 匹配字符串的结束
^d{5,12}$表示匹配5-12位数字
字符转义
如果想匹配字符串中的(.*)等字符,需要用.,或者(*)来实现,如果想匹配字符串中的,则需要用\实现
例子:acfun.cn匹配字符串http://acfun.cn
C:windows需要用正则表达式C:\windows来匹配
重复
- * 重复0次或者多次
- + 重复1次或者多次
- ?重复0次或者1次
- {n} 重复n次
- {n,}重复n次或者更多次
- {n,m} 重复n到m次
字符类
[aeiou]匹配任何一个英文元音字母
[.?!]匹配三个标点符号的任何一种
[a-z0-9A-Z]匹配数字或字母(不区分大小写)
分支条件
0d{2}-d{8}|0d{3}-d{7} 匹配三位区号-8位电话号码的或者是四位区号-7位电话号码
(0d{2})[- ]?d{8}|0d{2}[- ]?d{8}匹配三位区号用括号括起来或者有空格或者-也可以没有连接8位电话号码,后面是没有括号
d{5}-d{4}|d{5} 表示匹配5用-链接的9位的邮政编码或者五位的邮政编码
注意:不能写成d{5}|d{5}-d{4}这样只能匹配到5位的或者9位的前五位
不能匹配到完整的9位
原因:匹配分枝条件时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了
分组
((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)。
匹配IP地址的正则表达式
大写字母实现反义
W 匹配任意不是字母,数字,下划线或者汉字的字符
S 匹配任意不是空白符的字符
D 匹配任意非数字的字符
B 匹配不是单词开头或者结尾的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
<a[^>]+>匹配用尖括号括起来的以a开头的字符串。
初写 如果大家发现内容有错误的地方可联系我及时改正 麻烦啦!
创作不易,多多支持~
觉得有用的点个赞关个注再走呗~
作者:黎哈哈