正则表达式Re库的使用-Python

MOOC课程学习笔记
课程链接:https://www.bilibili.com/video/BV1ME411E7jE?p=1

Re库主要功能函数

函数功能返回值
re.search()在一个字符串中搜索匹配正则表达式的第一个位置match对象
re.match()从一个字符串的开始位置起匹配正则表达式match对象
re.findall()搜索字符串,返回全部能匹配的子串list列表
re.split()将一个字符串按照正则表达式匹配结果进行分割list列表
re.finditer()搜索字符串,返回匹配结果迭代类型,迭代元素是match对象
re.sub()在一个字符串中替换所有匹配正则表达式的子串替换后的string字符串
re.compile()将正则表达式的字符串形式编译成正则表达式对象正则表达式对象

实例 (以查找邮政编码为例)

search函数

# search函数 向后找第一个符合条件的字符串
match = re.search(r'[1-9]\d{5}','BIT 221745 221746')
if match:
    print(match.group(0)) # 输出 221745

match函数

# match函数 从“第一字符”开始匹配 返回第一个符合条件的字符串
match = re.match(r'[1-9]\d{5}','BIT 221745') # 匹配错误,因为第一个是B而不是[1-9]
match = re.match(r'[1-9]\d{5}','221745 221746 BIT') # 匹配成功
if match:
    print(match.group(0)) # 输出 221745

findall函数

# findall函数 搜索所有符合条件的字符串 以列表形式返回
match = re.findall(r'[1-9]\d{5}','BIT 221745 221746')
print(match) # 输出 ['221745', '221746']

split函数

# split函数 按照匹配结果进行分割 返回列表类型
# maxsplit:最大分割数,剩余部分作为最后一个元素输出
match = re.split(r'[1-9]\d{5}','ABC 221745 DEF 221746 GHI 221747')
print(match) # 输出 ['ABC ', ' DEF ', ' GHI ', '']
match = re.split(r'[1-9]\d{5}','ABC 221745 DEF 221746 GHI 221747',maxsplit=1)
print(match) # 输出 ['ABC ', ' DEF 221746 GHI 221747']
match = re.split(r'[1-9]\d{5}','ABC 221745 DEF 221746 GHI 221747',maxsplit=2)
print(match) # 输出 ['ABC ', ' DEF ', ' GHI 221747']

finditer函数

# finditer函数 搜索字符串 返回一个匹配结果的迭代类型(match对象)
match = re.finditer(r'[1-9]\d{5}','ABC 221745 DEF 221746 GHI 221747')
for m in match:
    if m:
        print(m.group(0))
'''
输出结果:
221745
221746
221747
'''

sub函数

# sub函数 在一个字符串中替换所有匹配正则表达式的子串 返回替换后的子串
# 这个例子中将邮政编码全部替换成000000
match = re.sub(r'[1-9]\d{5}','000000','ABC 221745 DEF 221746 GHI 221747')
print(match) # 输出 ABC 000000 DEF 000000 GHI 000000

compile函数

# compile函数 将字符串编译成正则表达式对象
regex = re.compile(r'[1-9]\d{5}') # 经过一次编译 可多次对此正则表达式进行使用
match = regex.search('ABC 221745 DEF 221746 GHI 221747')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值