Python的正则表达式
1--》正则表达式的支持来源于re模块,该模块有如下几个常用的函数(目前我觉得常用的)re.search(pattern,string,falg = 0)其中pattern是正则表达式,string是匹配字符串,flag是正则旗标;re.fullmatch(pattern,string,flag=0),它与search方法的区别在于search只会将第一个匹配成功的字符串返回,而它是以列表的形式全部返回;re.sub(pattern,repl,count=0,flag = 0)这个函数将匹配成功的字符串用repl代替,count用来决定将匹配成功的字符串替换几次(因为正则表达式可能有多处匹配成功);
re.putge()清楚正则表达式缓存;re.escape()对模式(匹配成功的字符串)中的ASCII字符、数值、下画线(_)之外的其他字符进行转义。另在各个方法中有group(返回匹配成功的字符串)、span(返回匹配成功字符串的位置)
2--》正则表达式旗标内最常用的旗标是I(是否区分大小写),拥有行内旗标。这使得?i(?-i)可以对子表达式单个作用
3--》正则表达式支持的预定义字符,/.匹配除换行符以外的任意单个字符,/d匹配数字(0-9)/D(匹配非数字)/s(匹配所有的空白字符,空格,制表符,回车符,换页符,换行符)/S(/s的逆反)/w(单词字符,0-9的数字,a-z|A-Z的字母以及_下画线)/W(/w的逆反)。巧计:d---digit整数、s--space空白、w--word字符
正则表达式的特殊字符:‘+’(前面子表达式出现1-∞)+‘?’(前面子表达式出现0-1) = ‘*’(前面子表达式出现0-∞),{}前面表达式出现频度,$匹配一行的结尾^匹配一行的开头 \转义,使特殊字符变为普通字符,.代替任意单个字符
方括号表达式:[]包括枚举,匹配中括号内的任意一个字符;范围,匹配在中括号所给的范围之内,求否,中括号内,作用类似于取反操作
4--》子表达式:(exp)形式,很普通,括号内就是正则表达式的内容,使用这种形式可以用\1,\2来引用出现过的子表达式(偷懒呗),1代表第一个出现的子表达式,依次往后推进
(?P
(?:exp),(?<=exp),(?=exp)这三者又和前两个有所区别,区别在于这三个exp不作为匹配的一部分,也就是正则表达式内的内容不被捕获返回
最后就是旗标re.I的行内旗标(?i)和(?i:exp),第二个将其“威力”直接渗透到每一个子表达式,但之后就要加上旗标re.I,而前者更适用于正则表达式整体都不区分大小写
5--》贪婪模式与勉强模式,顾名思义,贪婪就是最大限度达到目的,而勉强讲究的是“刚刚好,不多也不少,第一次出现”

浙公网安备 33010602011771号