re.Match类介绍
当我们调用re.match
方法、re.search
方法,或者对re.finditer
方法的结果进行迭代时,拿到的数据类型都是re.Match
对象。
x = re.match(r'h','hello') y = re.search(r'e','hello') z = re.finditer(r'l','hello') print(type(x)) # <class 're.Match'> print(type(y)) # <class 're.Match'> for a in z: print(type(a)) # <class 're.Match'>
这个类里定义了相关的属性,可以直接让我们来使用。
属性和方法 | 说明 |
pos |
搜索的开始位置 |
endpos |
搜索的结束位置 |
string |
搜索的字符串 |
re |
当前使用的正则表达式的对象 |
lastindex |
最后匹配的组索引 |
lastgroup |
最后匹配的组名 |
group(index=0) |
某个分组的匹配结果。如果index 等于0,便是匹配整个正则表达式 |
groups() |
所有分组的匹配结果,每个分组的结果组成一个列表返回 |
groupdict() |
返回组名作为key,每个分组的匹配结果座位value的字典 |
start([group]) |
获取组的开始位置 |
end([group]) |
获取组的结束位置 |
span([group]) |
获取组的开始和结束位置 |
expand(template) |
使用组的匹配结果来替换模板template 中的内容,并把替换后的字符串返回 |
ret = re.search(r'(abc)+', 'xxxabcabcabcdef') print(ret.pos) # 搜索开始的位置,默认是0 print(ret.endpos) # 搜索结束的位置,默认是字符串的长度 print(ret.group(0)) # abcabcabc 匹配整个表达式 print(ret.group(1)) # abc 第一次匹配到的结果 print(ret.span()) # (3, 12) 开始和结束位置 print(ret.groups()) # 表示当正则表达式里有多个分组时,多个分组的匹配结果