您的位置:首页 > 编程语言 > Python开发

Python学习——正则表达式

2017-12-18 16:40 429 查看
导入正则表达式模块:

import re


1、re.match

re.match是从字符串开头开始匹配的,匹配成功的话可以通过group()方法进行展示出来:

import re

line = 'abc123abc'
rest = r'.*(\d{3}).*'   #正则表达式内容
result = re.match(rest, line)
print(result.group(1))


得到结果:

123


2、re.search

re.search用来检查字符串中任意位置的给定正则表达式的匹配情况,并返回第一个匹配成功的对象:

import re

line = 'abc456abc123'
rest = r'\d{3}'   #正则表达式内容
result = re.search(rest, line)
print(result.group())


得到结果:

456


3、group()与groups()方法

再通过re.match以及re.search得到匹配结果后,可以通过group()与groups()方法将结果展示出来。

group()方法返回所有匹配对象或者根据要求返回某个特定子组,groups()方法返回包含唯一或者所有子组的元组。

如果正则表达式中没有子组的话,groups()方法返回一个空的元组,group()方法返回全部匹配对象。

4、re.findall

re.findall与re.search的用法类似,只不过返回的是所有符合正则表达式的一个列表:

import re

line = 'abc456abc123'
rest = r'\d{3}'   #正则表达式内容
result = re.findall(rest, line)
print(result)


得到结果:

['456', '123']


5、re.sub/subn

re.sub用来将匹配到的字符串进行替换的。用法如下:

import re

line = 'abc456abc123'
s= re.sub(r'\d+', 'xyz', line)
print(s)


得到:

abcxyzabcxyz


re.subn可以得到替换的次数,以替换后的字符串和表示次数形成元组的形式返回。

import re

line = 'abc456abc123'
s= re.subn(r'\d+', 'xyz', line)
print(s)


得到:

('abcxyzabcxyz', 2)


6、re.split

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: