1 字符匹配
-普通字符
大多数字母和字符一般都会和自身匹配
-元字符
. ^ $ * + ? { } [ ] \ | ( )
2 分析
1)[ ]
-常用来指定一个字符集:[abc], [a-z]
-元字符在字符集不起作用:[akm$]
-补集匹配不在区间范围内的字符:[^5]
下图是一些例子:
2) ^
-匹配行首,除非设置MULITILINE标志,他只是匹配字符串的开头,在MULTILINE模式中,他也可以直接匹配字符串中的每一个换行
3) $
-匹配行尾,行尾诶定义为要么是字符串尾,要么是一个换行字符后面的任何位置
4) \
-反斜杠后面可以加不同的字符以表示不同的意义,转义字符
-可以取消所有的元字符:\[ or \\
\d 匹配任何十进制数,相当于类[0-9]
\D 匹配任何非数字数,相当于类[^0-9]
\s 匹配任何空白字符,相当于类[\t\n\r\f\v]
\S 匹配任何非空白字符,相当于类[^\t\n\r\f\v]
\w 匹配任何字母数字字符,相当于类[a-zA-Z0-9_]
\W 匹配任何非字母数字字符,相当于类[^a-zA-Z0-9_]
另外可以知道正则表达式的一部分的重复次数
如下:
5) *
-指定前一个字符可以被匹配0次or多次
6) +
-匹配1次or多次
-注意*和+的不同之处,*:匹配0次or多次; +:匹配至少出现一次
另外 ? :匹配0次or1次,可以用来标识某事物是可选的
如下:
“ab+"表示贪婪模式;"ab+?"表示非贪婪模式
7) { m, n}
-其中m,n是十进制数,该限定符表示至少有m个重复,至多有n个重复
-忽略m,默认为0;忽略n,默认为无穷
-{0,}相当于*,{1,}相当于+,而{0,1}相当于?
不过最好还是使用*,+,?