python re模块 匹配中文_python处理文本文件——re模块

c29266a5c8315d1308c7fa6b22b1f136.png

上一次在「正则表达式」一文中分享了正则表达式的基础内容,让大家了解到正则表达式的强大功能。

python自1.5版本起增加了re模块,re模块中提供了一些方法,可以方便在python语言中使用正则表达式,re模块使python语言拥有全部的正则表达式功能。

re模块的方法

python语言中把函数提供的功能叫做方法,re模块提供了各种各样的正则表达式方法。

re.match(pattern, string, flags=0)方法:如果string开始的0或者多个字符匹配到了正则表达式样式,就返回一个相应的匹配对象。如果没有匹配,就返回None.

>>> import re
>>> print(re.match('abc', 'abcdef').group())  # 匹配到开头
abc
>>> print(re.match('abc', 'defabc').group())  # 未未匹配开头,返回None
None

re.search(pattern, string, flags=0)方法:扫描整个字符串找到匹配样式的第一个位置(一旦匹配成功则停止匹配),并返回一个相应的匹配对象。如果没有匹配,就返回None.

>>> import re
>>> print(re.search('d+', 'ab12cd236ef').group())  # 返回第一个匹配
12
>>> print(re.search('d+', 'abcd236ef').group())  # 返回第一个匹配
236

re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None,而re.search匹配整个字符串,直到找到一个匹配对象为止。

re.fullmatch(pattern, string, flags=0)方法:如果整个string匹配到正则表达式样式,就返回一个相应的匹配对象 ,否则就返回None.

>>> print(re.fullmatch('d+', 'ab12cd236ef'))  # 未匹配成功
None
>>> print(re.fullmatch('d+', '236'))  # 匹配整个字符串
<re.Match object; span=(0, 3), match='236'>

re.findall(pattern, string, flags=0)方法:搜索string,以列表的形式返回全部能匹配到的字串,对string从左到右进行扫描,按找到的顺序返回。

import re
>>> print(re.findall('(w=2u).*(l=1u)', 'n33 w=2u m=2 l=1u'))  # 分组
[('w=2u', 'l=1u')]
>>> print(re.findall('d+', 'ab12cd236ef12'))  # 匹配所有
['12', '236', '12']

如果样式里存在一到多个组,就返回一个组合列表;如果样式里有超过一个组合的话就是一个元组的列。re.split(pattern, string, maxsplit=0, flags=0)方法:用pattern分开string,如果在pattern中捕获到括号,那么所有的组里的文字也

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值