首页 > 编程语言 > 详细

Python的正则表达式运用

时间:2020-04-28 09:08:55      阅读:65      评论:0      收藏:0      [点我收藏+]

正则表达式(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的《正则表达式必知必会》)

Python的正则表达式运用

原文:https://www.cnblogs.com/oyster25/p/12788071.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!