一、贪婪
.什么是贪婪:在正则中控制匹配不确定次数的符号后边可以加?,来表示尽可能少的匹配
在非贪婪的时候,匹配是尽可能多的匹配
注意:尽可能少是在能够匹配到的前提下尽可能少
加‘?’是贪婪,表示尽可能少,不加‘?’的时候就是非贪婪,表示尽可能多
二、正则表达式
1、compile(正则表达式)--->将正则表达式转换整正则对象
编译后可以直接通过对象调用相关的对象方法
2、fullmatch(正则表达式,字符串)--->让字符串和正则表达式完全匹配,匹配成功返回匹配对象,匹配失败返回None
应用:检测字符串内容是否符合要求,例如:检测账号、密码、判断手机号、身份证号等是否合法
匹配对象
a、span ---匹配到的字符串在原字符串中的下标范围(结果是元祖),获取整个或分组正则表达式匹配到的内容的范围
b、start、end---匹配到的字符串在原字符串中的开始下标和结束下标
c、group(组)---匹配到的字符串(结果是字符串),也可以获取到分组的字符串
d、groups()---同时获取所有分组匹配到的字符串(结果是元祖)
e、string---获取原字符串
3、match(正则表达式,字符串)--->让字符串的开头和正则表达式进行匹配(匹配成功结果是匹配对象,否是是None),字符串长度可以延伸
4、search(正则表达式,字符串)-->在字符串中去匹配第一个符合正则表达式的子串,匹配成功结果是匹配对象,否是是None
5、split(正则表达式,字符串)--->将字符串按照满足正则要求的子串进行切割(返回值是列表)
6、sub(正则表达式,新子串,原字符串)--->将原字符串能够和正则表达式匹配的子串替换成新字符串,产生一个新的字符串
7、findall(正则表达式,字符串)--->在字符串中获取满足正则表达式的所有的字符串(结果是列表)
注意:如果正则表达式中有分组,直接获取到的是分组中匹配到的内容,如果有多个分组列表中的元素是元祖
8、finditer(正则表达式,字符串)--->在字符串中获取满足正则表达式的所有子串(结果是迭代器,元素是匹配对象)
9、re.I-->忽略大小写,匹配的约束条件是放在函数的flags参数中