能够与 多种字符 匹配的表达式 注意区分大小写,大写是相反的意思
符号含义\d任意一个数字,0~9中的任意一个\D非数字\w任意一个字母数字或下划线,A-Z,a-z,0~9,_\W除了字母数字下划线的任意字符\s包括空格、制表符、换行符等空白字符的其中任意一个\S除了空格、制表符、换行符之外的任意字符.小数点可以匹配任意一个字符,但是匹配不了换行符,如果要匹配包含\n在内的所有字符,一般用 [\s\S][]方括号匹配方式:能够匹配方括号中的任意一个字符
表达式匹配字符[ab@5]匹配 a 或者b或者@或者5^ab]匹配除了 a,b之外的任意字符[f-k]匹配 f到k之间的任意一个字符,包括 f 和 k[^A-F0-3]匹配除了A ~ F,0 ~ 3 之外的任意字符 在 [ ] 中 ^ 表示取反对的意思。正则表达式的特殊符号,被包含到中括号中,就是去了特殊意义,除了 ^ 和 - 之外。标准字符集合,除了小数点在中括号中会失去特殊意义,其他的不会。 [\dab],匹配数字或者a,b修饰匹配次数的特殊符号
表达式含义{n}表达式重复n次 ,包括 n{m,n}表达式至少重复m次,至多重复n次 ,包括 m 和 n{m,}表达式至少重复m次 ,包括 m?匹配表达式0次或1次,相当于{0,1}+表达式至少出现一次,相当于{1,}*表达式不出现或者出现任意次,相当于{0,} 贪婪模式:匹配字符越多越好,默认。例如下图中如果写成c{2,6},就是会匹配到一个cccccc。非贪婪模式:就是在量词后面加一个 ?号。还是下图,写成c{2,6}?,就会匹配到3个cc如果连续的6个c,使用表达式c{2,3},会匹配到2个ccc,这是因为匹配到第一个ccc的时间会重新计数。
反向引用:每一对()会分配一个编号,使用()的捕获根据左括号从1开始自动编号。 通过反向引用,可以对分组已捕获的字符串进行引用,如下图:小括号中的表达式表示匹配两个字母,后面的\1表示对()中内容的引用,即()中匹配到go,\1再次引用go,这时候这个正则需要的就是 gogo
例如:断言自己后面可以匹配到ing的字符