RE库常用的操作符
{n} :扩展前一个字符n次 例:abc{3}表示abccc
{m,n} :扩展起一个字符m至n次 例:ab{2,3}c表示abbc,abbbc
^:匹配一个字符串的开头 例:^abc 表示匹配以abc开头的字符串
$:匹配一个字符串的结尾 例:abc$ 表示匹配以abc结束的字符串
():分组标记 例:(abc) 表示abc
\d:表示数字0-9
\w:表示[A-Za-z0-9]
. :表示任何单个字符
[]:字符集,对单个字符给出取值范围 例:[abc] 表示a ,b,c中的一个
|: 选择符 例: abc|def 表示abc或def的一个
[^]: 非字符集 ,对单个字符给出排除范围 例:[^abc]表示非a,非b,非c中的一个
*:表示前一个字符的0次或无限次扩展 例 :abc*表示 ab,abc,abcc,abccc abc....
+:表示前一个字符的1次或无限次扩展
?:表示前一个字符的0次或1次扩展
以上常用操作符都要记住
RE库的基本函数
re.search(正则表达式,匹配字符串,控制选项) 在字符串中匹配需要的字符串的首次出现,返回match对象
re.match(正则表达式,匹配字符串,控制选项) 从字符串的开始位置匹配需要的字符串,返回match对象
re.findall(正则表达式,匹配字符串,控制选项) 返回全部能匹配到的字符串,返回列表
re.split(正则表达式,匹配字符串,分割最大数,控制选项)将字符串按照要求匹配,将不匹配的地方返回为列表类型
re.finditer(正则表达式,匹配字符串,控制选项)搜索字符串,返回可迭代的match类型
re.sub(正则表达式,替换字符,匹配字符串,匹配最大次数,控制选项)将匹配到的字符按要求更换为其他字符,并返回替换后的字符串
控制选项:
re.I:忽略正则表达式的大小写区分
re.M:正则表达式中的“^”使匹配从每行的头开始匹配
re.S:使正则表达式的"."能够匹配所有字符,默认的‘.’能匹配除换行符以外的字符
match对象的属性:
match.string 返回待匹配的文本
match.re 返回正则表达式
match.pos 正则表达式开始搜索的位置
match.endpos 正则表达式搜索结束的位置
match对象的方法:
match.group(0):获得匹配后的字符串
match.start(): 匹配字符串在原字符串的开始位置
match.end():匹配字符串子啊原字符串结束的位置
match.span():返回(match.start(),match.end())的元组
RE库的贪婪匹配和最小匹配:
(r'ab.*g','abcgwegwrtg')
如果没有贪婪匹配机制
那么他能匹配的有:abcg,abcgweg,abcgwegertg这三种,所以默认会匹配最长的字符串
如果想让他变成最小匹配只要在需要多次匹配的字符串后面加“?”即可
本人也是小白,以上均为我观看嵩天老师的课后笔记,均为个人理解