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)

你可能感兴趣的:(Python,技术杂谈)