Python:re模块

目录
re模块概述
方法
规则
Flag标记

re模块概述

万能的re模块,正则表达式,主要的作用就是从文档中按照一定规则进行模糊查找,获取所需要的字符串,很是方便快捷。可以很方便的对文档内容进行解析。

方法

re模块的方法有以下几种。初级方法为match(),search(),findall()。这是最主要的方法。其他为方法为split(),sub(),compile(),fullmatch()。

  • re.matach()。只匹配文档的开头,找到就返回对象。否则为None
  • re.search()。全局匹配,但是只匹配一次,找到返回对象。否则为None
  • re.findall()。全局匹配所有符合条件的字符串返回一个列表,没有找到则返回一个空值列表。

match和search返回的是一个对象,该对象可以使用group()来接收,但是group()不能接收None值,所以在使用前,要记得对None进行过滤。

# 
# 打开测试文档对内容进行读取,对读取到的内容进行返回
f = open("test.txt","r")
for line in f:
    a = re.search("\d{3}",line)
    a = re.match("\d",line)
    # a = re.match("\d",line).group()的话没有匹配到的话会报错
    if a:
        b = a.group()
        print(b)

findall()的话就是要注意在对一个大文档逐行匹配的时候,如果没有匹配到,列表中对应位置就会多一个空值。

下面几个方法使用相对较少。

  • re.split()。使用和字符串的split方法类似,以匹配到的字符作为分隔符,返回列表。
  • re.sub()。搜索到指定的字符以后,使用新字符去替换,同时还可以指定更换的次数。
  • re.fullmatch()。对整个字符串进行匹配,成功则返回对象,否则None.
  • re.complie()。这个就相当于将规则赋值,然后在使用赋值后的变量去匹配,当匹配内存较大的文档时可以减少运算量。
规则

匹配规则中有很多简便的符号能代表一些含义,下面进行介绍。

项目作用
.能代表除换行符以外的任意字符
^只匹配字符串的开头
$只匹配字符串的结尾
匹配符号前字符0次或1次
+匹配符号前字符1次或多次
*匹配符号前字符0次或多次
{m}前面的字符匹配m次
{n,m}前面的字符匹配n到m次
l或的意思,匹配左边字符或右边字符
()分组,利用groups()得到结果
\A只匹配字符串的开头
\Z只匹配字符串的结尾
\d等同于匹配[0-9]
\D等同于匹配非[0-9]以外的字符
\w等同于匹配[A-Za-z0-9]
\W等同于匹配非[A-Za-z0-9]
(?P<name>)对分组进行命名
Flag标志
  • re.I。忽略大小写。
  • re.M。多行模式,每一个换行符都成新的一行
  • re.S。使.可以匹配换行符
  • re.X。可以在要查找的规则内加注释
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值