正则表达式快速入门总结
正则表达式快速入门总结
正则表达式匹配主要就是两个事情,一个匹配位置,另外一个就是匹配字符,下面是总结。
匹配位置
\b 仅代表词的开头或者结尾,单词只能包括数字、字母、汉字等,不包括特殊符号
\B 匹配任意不是单词开头或者结束的位置
^ 代表字符串的开头
$ 代表字符串的结尾
() 分组 括号里作为一个整体
| 或
匹配数字及字符
\d 匹配一位数字
\d{n} 匹配了n个数字
\d{m,n}匹配了[m,n]之间的数字,左右都是闭区间
\D匹配任意非数字的字符
. 匹配除换行符外的任意一个字符
* 代表前面的部分重复n次(n>=0)
+ 代表前面的部分重复m次 (m>0)
? 代表前面的部分0次或1次
\s 匹配任意的空白符(空格,制表符,换行符,中文全角空格等)
\S 匹配任意不是空白符的字符
\w 匹配字母或者数字或者下划线或者汉字等
\W 匹配任意不是字母,数字,下划线,汉字的字符
[范围] 某个范围的字符[0-9] [a-z] [A-Z]
[^范围]匹配除了范围以外的任意字符
零宽断言
零宽断言实质也是匹配位置。
零宽断言是与上面匹配位置相反的,指的是匹配满足一定条件的之前或者之后的位置。正则表达式只有当断言为真时,才会继续匹配。
负向零宽断言是说不想匹配,只想保证匹配的内容中没有某个字符。
(?=条件) 零宽断言(后匹配)
(?<=条件) 零宽断言(前匹配)
(?! 条件) 负向零宽断言(后匹配)
(?<! 条件) 负向零宽断言(前匹配)
零宽断言只用来匹配到条件成立的内容的位置,以此位置为真正的开始,再进行我所需要的匹配。
负向零宽断言是匹配到不符合条件的内容的位置,以此位置为真正的开始,再进行我所需要的匹配。