Python的正则表达式运用

正则表达式(regular expression,简称regex)是文本处理方面功能最强大的工具之一。正则表达式语言用来构造正则表达式(最终构造出来的字符串就称为正则表达式),正则表达式用来完成搜索和替换操作
正则表达式语言是内置于其他语言或软件产品里的“迷你”语言,Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式
正则表达式经常被简称为模式(pattern),它们其实是一些由字符构成的字符串,这些字符可以是普通字符(纯文本)或元字符(metacharacter,表示这个字符有特殊含义,而不是字符本身含义)

re模块常用函数

1. re.match
re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none

import re

str1 = 'My name is Jim.'

print(re.match('Jim', str1))
# 》》None
print(re.match('My', str1))
# 》》<re.Match object; span=(0, 2), match='My'>

匹配成功会返回一个re.Match对象,否则返回None
然后可以使用group()函数来获取匹配表达式

import re

str1 = 'My name is Jim.'

print(re.match('My', str1).group())
# 》》My

2. re.search
re.search扫描整个字符串并返回第一个成功的匹配

import re

str1 = 'My name is Jim.'

print(re.match('Jim', str1))
# 》》None
print(re.search('Jim', str1))
# 》》<re.Match object; span=(11, 14), match='Jim'>

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配
可以通过span()函数得到匹配对象的位置

import re

str1 = 'My name is Jim.'

print(re.search('My', str1).span())
# 》》(0, 2)
print(re.search('Jim', str1).span())
# 》》(11, 14)

3. re.sub
re.sub用于替换字符串中的匹配项

import re

str1 = 'My name is Jim.'

print(re.sub('Jim', 'Kim', str1))
# 》》My name is Kim.

4. re.compile
compile函数用于编译正则表达式,生成一个正则表达式(Pattern)对象

import re

str1 = 'My name is Jim.'

pattern = re.compile('Jim')
print(type(pattern))
# 》》<class 're.Pattern'>
print(pattern.search(str1))
# 》》<re.Match object; span=(11, 14), match='Jim'> 

5. findall
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表
注意:match和search是匹配一次,findall匹配所有

import re

str1 = 'My name is Jim. Her name is Kim.'

print(re.findall('name', str1))
# 》》['name', 'name']



 












(部分内容摘自Ben Forta的《正则表达式必知必会》)

扫描二维码关注公众号,回复: 11141082 查看本文章

猜你喜欢

转载自www.cnblogs.com/oyster25/p/12788071.html