一.匹配字符说明
‘.‘ 默认匹配除了换行符的所有字符,如果指定了DOTALL标志,那么.能够匹配所有字符
‘^‘匹配字符串的开头,如果是在multiline模式下,’^‘将匹配每行的开头
‘$‘匹配字符串的末尾,如果是在multiline模式下,’^‘将匹配每行的末尾
‘*‘ 将之前的字符重复0次及0次以上,例如ab*可匹配a,也可匹配abbbbbbbb
‘+‘ 将之前的字符重复1次及1次以上,例如ab+不可匹配a,但可匹配abbbbbbbb
‘?‘ 将之前的字符重复0次或者1次
{m} 将之前的字符重复m次
{m,n}将之前的字符重复m到n次
{,n} 将之前的字符重复0到n次
{m,}将之前的字符重复m到无限次
*?,+?,??,{m,n}? 如果没有在后面加?,那么*,+,?在匹配时会尽量匹配更多的字符串,如<.*>在匹配<h>hello world</h>时会匹配<h>hello world</h>,而不是<h>,加 上?后匹配的字符第一次满足要求后就会停止匹配,那么<.*?>就能匹配<h>
\ \的作用使得能够匹配*,?,+正常下不能匹配的字符,用\转义后即可匹配
[] 标识一系列能够希望被匹配的字符,[a-z]匹配所有的小写字母,加上^如[^a-z]则匹配除了a-z的字符
| 如a|b 可以匹配a或者b
(?=...) 表示该位置后面的字符是...表示开始匹配,并且匹配是从...开始匹配,而不是从...后开始匹配
(?!...) 表示该位置后面的字符不是...时才表示开始匹配,并且匹配是从...开始匹配,而不是从...后开始匹配
(?<=...) 标识从...后才开始进行匹配,并且是从...后开始匹配
\w 表示[a-zA-Z0-9]
\W表示[^a-zA-Z0-9]
\s表示空白字符,[\t\n\r\f\v]
\S表示非空白字符,[^\t\n\r\f\v]
\d [0-9]
\D [^0-9]
\b匹配空白字符,以及非字母数字下划线的字符
\B \b的补集