3.2.4 match对象
来源:互联网 发布:聚宝盆返奖统计软件 编辑:程序博客网 时间:2024/06/07 14:22
match对象是通过正则表达式匹配成功之后返回的对象,如果不成功也会返回,不过其布尔值为False。因此,判断是否匹配成功,只要判断match对象的布尔值就可以,简单的就是使用if语句来判断。
例子:
print('re.split')
result = re.split('\W+','Cai, cai, cai.')
if result:
print(result)
match对象支持下面的方法和属性:
match.expand(template)
在模板字符串template中指定位置替换为指定分组的内容,可能过索引(\1,\2)或组名称(\g<1>, \g<name>)来引用。
例子:
print('match.expand')
pattern = re.compile('(?P<style>[^|]*)\|(?P<tags>[^|]*)')
match = pattern.match('OL|AAAAA')
print(pattern.groups)
print(pattern.groupindex)
print(match.expand(r'这是一个测试\2,没错!'))
输出结果如下:
match.expand
2
{'style': 1, 'tags': 2}
这是一个测试AAAAA,没错!
match.group([group1, ...])
返回分组中子分组的结果。如果只有一个参数,当作一个字符串返回。如果有多个参数,使用元组返回。如果没有参数输入,默认返回第一组的结果。组号的范围在[1, 99]之间。如果输入组号为负数,或者大于匹配的分组最大值,就抛出IndexError异常。
例子:
print('match.group')
pattern = re.compile('(?P<style>[^|]*)\|(?P<tags>[^|]*)')
match = pattern.match('OL|AAAAA')
print(pattern.groups)
print(pattern.groupindex)
print(match.group())
print(match.group(0))
print(match.group(1))
print(match.group(2)) #使用组序号
print(match.group('style')) #使用组名称
结果输出如下:
match.group
2
{'tags': 2, 'style': 1}
OL|AAAAA
OL|AAAAA
OL
AAAAA
OL
match.groups(default=None)
使用元组返回所有匹配的分组,如果有分组没有匹配,就返回None。如果有设置参数,就会使用参数来替换相应没有匹配到的分组。
例子:
print('match.groups')
pattern = re.compile(r"(\d+)\.?(\d+)?")
match = pattern.match('123.56')
print(match.groups())
print(match.groups('0'))
match = pattern.match('123')
print(match.groups())
print(match.groups('0'))
结果输出如下:
match.groups
('123', '56')
('123', '56')
('123', None)
('123', '0')
match.groupdict(default=None)
以字典的方式返回分组命名的匹配结果。如果没有匹配成的分组,以参数替换,如果没有参数,就默认为None替换。
例子:
print('match.groupdict')
pattern = re.compile('(?P<style>[^|]*)\|(?P<tags>[^|]*)')
match = pattern.match('OL|AAAAA')
print(pattern.groups)
print(pattern.groupindex)
print(match.groupdict())
结果输出如下:
match.groupdict
2
{'tags': 2, 'style': 1}
{'tags': 'AAAAA', 'style': 'OL'}
match.start([group])
match.end([group])
返回匹配组的开始位置和结束位置。参数是group组号,默认为0,就所有组都返回。
例子:
print('match.start, match.end')
email = '9073204@vip.qq.com'
match = re.search('vip.', email)
print(email[:match.start()] + email[match.end():])
结果输出如下:
match.start, match.end
9073204@qq.com
match.span([group])
返回匹配对象组的开始位置和结束位置(m.start(group), m.end(group)),格式是元组方式。如果没有匹配任何组返回(-1, -1)。
例子:
print('match.span')
email = '9073204@vip.qq.com'
match = re.search('vip.', email)
print(email[:match.start()] + email[match.end():])
print(match.span())
结果输出如下:
print('match.span')
email = '9073204@vip.qq.com'
match = re.search('vip.', email)
print(email[:match.start()] + email[match.end():])
print(match.span())
match.pos
match.endpos
在search和match里使用开始位置和结束位置。
例子:
print('match.pos')
email = '9073204@vip.qq.com'
pattern = re.compile('vip.');
match = pattern.search(email, 2)
print(email[:match.start()] + email[match.end():])
print(match.pos)
print(match.endpos)
结果输出如下:
match.pos
9073204@qq.com
2
18
match.lastindex
保存最后分组的值。如果没有组,返回None。
例子:
print('match.lastindex')
pattern = re.compile(r"(\d+)\.?(\d+)?")
match = pattern.match('123.56')
print(match.groups())
print(match.lastindex)
结果输出如下:
match.lastindex
('123', '56')
2
match.re
在search和match中使用的正则表达式对象。
例子:
print('match.re')
pattern = re.compile(r"(\d+)\.?(\d+)?")
match = pattern.match('123.56')
print(match.groups())
print(match.re)
结果输出如下:
match.re
('123', '56')
re.compile('(\\d+)\\.?(\\d+)?')
match.string
传给search或match进行匹配的字符串。
例子:
print('match.string')
pattern = re.compile(r"(\d+)\.?(\d+)?")
match = pattern.match('123.56')
print(match.groups())
print(match.string)
结果输出如下:
match.string
('123', '56')
123.56
蔡军生 QQ:9073204 深圳
- 3.2.4 match对象
- 数组对象,字符串对象,Match对象
- JavaScript String 对象 match() 方法
- JavaScript string对象match()方法
- js navicator对象、match方法
- Re库的match对象
- 13.2.2 Matches集合与Match对象
- String 对象中的 正则表达式方法 match
- RE 功能函数与Match对象
- match
- match
- match
- $match
- 7-包装器函数+Match对象+Date对象+note
- Js 正则表达式对象(方法:exec、test、match、search)
- JavaScript String对象方法——search(),match(),replace(),split()
- Python 正则表达式的 Match 对象的 group 方法
- re模块中match对象的方法和属性
- Before Anything, an Architect Is a Developer
- CMOS摄像头简单分析
- 从数据库中提取到ueditor并且重新编辑
- java综合(五)spring与hibernate整合-事务
- C语言类型占多少字节
- 3.2.4 match对象
- 接口
- 单行文本框和多行文本框UiTextfield UiTextView
- IIC总线分析
- 一起talk C栗子吧(第四十三回:C语言实例--图)
- sshfs挂载与ssh无密码登录
- 设计模式简单理解
- EF导航属性真分页查询
- 使用sshfs挂载远程目录