python中常见的几种正则表达式的使用(re.split、re.sub、re.match与re.search)

一、正则表达式之分割

字符串的分割是python最常用的操作之一,一般使用split函数,例如:

s = "今天/天气/真好"
print(s.split('/'))

输出为:[‘今天’,‘天气’,‘真好’]。但split函数只能实现单个字符的分隔,但对于多个分隔符而言,实现起来非常麻烦。
python的正则表达式提供十分强大的多分隔符功能,具体实现如下:

import re
s = "jiang,nian,xin、啦/我,你"      
split_str = ",|,|、|/" #'|'表示或
s = re.split(split_str, s)
print(s)

输出为:[‘jiang’, ‘nian’, ‘xin’, ‘啦’, ‘我’, ‘你’]。正则表达式够厉害吧。

二、正则表达式之替换
在字符串中,常用的替换函数为replace,但replace与正则表达式中的sub函数相比,还是有一定差距的。replace的功能sub能够实现,而且还能够实现其它功能。sub的实现如下:

import re 
addr="3号9楼8楼2单元302室"        
addr = re.sub('[0-9]+(楼|单元)','',addr)  #参数第一项模板,第二项为替换的值
print(addr)

输出为:‘3号302室’ 。

三、正则表达式之匹配

匹配常用的函数为match,具体功能:匹配string开头,成功返回Match object, 失败返回None,只匹配一个。

import re
addr="3号9楼8楼2单元302室" 
print(re.match('[0-9]+(楼|单元)',addr))
print(re.match('[0-9]+号[0-9]+(楼|单元)',addr))

#输出为:None; <_sre.SRE_Match object; span=(0, 4), match=‘3号9楼’>

四、正则表达式之查找
search:在string中进行搜索,成功返回Match object, 失败返回None,只匹配一个。

import re
addr="3号9楼8楼2单元302室" 
s = re.search('[0-9]+号[0-9]+(楼|单元)',addr) #使用基本和match同
print(s.span())

#输出为:(0,4)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值