python re模块(一)

一.匹配字符说明

   '.' 默认匹配除了换行符的所有字符,如果指定了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表示空白字符,[ fv]

   S表示非空白字符,[^ fv]

   d [0-9]

   D [^0-9]

   匹配空白字符,以及非字母数字下划线的字符

   B 的补集

原文地址:https://www.cnblogs.com/lifeisshort/p/4659390.html