match是re.search和re.match匹配返回的结果
应用
1.group
import re
pattern = re.compile("(?P<first>d).(g)") # python中用`P<name>`带指定组名
match = pattern.search("dog")
match.group(0) # 'dog' 返回整体匹配的结果
match.group(1) # 'd' 返回第一组匹配的结果
match.group(2) # 'g' 返回第二组匹配的结果
match.group(1,2) # ('d', 'g') # 返回第一组和第二组匹配的结果
match.group('first',2) # 也可以使用key指定的key返回
match.groups() # ('d', 'g')
match.groupdict() # {'first': 'd'} 只返回了定义key值的组,没有定义的未返回
match.start(1) # 0 第一组匹配的起始位置
match.end(1) # 1 第一组匹配的结束位置
match.span(1) # (0,1) 第一组匹配的起始和结束位置
API
如果匹配成功返回match
对象,如果匹配失败则返回None
对象 | 方法 |
---|---|
Match.expand(template) | 对 template 进行反斜杠转义替换并且返回,就像 sub() 方法中一样。 |
Match.group([group1, …]) | 返回一个或者多个匹配的子组。0返回所有组匹配的完整的字符串,1是返回第一组,可以同时传入m.group(1,2)获得多组 |
Match.groups(default=None) | 等同于Match.group(0) |
Match.groupdict(default=None) | 只返回了定义key值的组,没有定义的未返回 |
Match.start([group]) | 组开始的洗标 |
Match.end([group]) | 组结束的下标 |
Match.span([group]) | 返回一个二元组 (m.start(group), m.end(group)) 。 注意如果 group 没有在这个匹配中,就返回 (-1, -1) 。group 默认为0,就是整个匹配。 |
Match.pos | 搜索的起始位置 |
Match.endpos | 搜索的结束位置 |
Match.lastindex | |
Match.lastgroup | |
Match.re | |
Match.string |