更多课程 选择中心


Python培训

400-996-5531

Python正则表达式及应用

  • 发布:Python培训
  • 来源:NYSecurity
  • 时间:2019-12-06 13:52

正则表达式作用

正则表达式主要应用于处理字符串,我们在用Python编程时经常需要查找符合某些复杂规则的字符串。正则表达式就是记录这些文本规则的代码,它能帮助你方便的检查一个字符串是否与某种模式匹配。

正则表达式基础

行定位符:^表示行的开始 ^tm表示要匹配字符串tm的开始位置如tm equl tomorrow字符串就可以匹配 。

$表示行的结尾,tm$匹配tm的结尾,如tomorrow moon equl tm可以匹配 。若为 tm ,则在结尾和开头都可以匹配。

元字符

上面的行定位符也属于元字符,在Python中有很多的元字符:

Python正则表达式及应用

重复:

上面提供的元字符只能匹配一个数字或字符,如果想要匹配特定数量的数字该如何表示呢?正则表达式为我们提供了限定符来使用:

Python正则表达式及应用

若想匹配8位QQ号可用^\d{8}$

字符类:

正则表达式查找数字和字母是很简单的,但如果想要匹配没有预定义的字符集合应该怎么办呢?很简单,只需要在方括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号 。注意:在进行匹配时只会匹配方括号中的一个元素。

若要匹配不符合指定字符集合的字符串只需要在方括号中添加^即可。

如[^a-zA-Z]就是匹配一个不是字母的字符。

若要匹配的字符串符合多种情况可以用选择字符|来完成 。

如:(\d{15}$)|(\d{17}$)意思是可以匹配15位或17位数字。

在正则表达式中小括号可以改变限定符的作用范围,(thir|four)th这个表达式的意思是匹配单词thirth或fourth。如果没有括号这个表达式的意思就变成匹配单词thir和fourth了。

如(\.[0-9]{1,3}){3}这个表达式代表对分组(\.[0-9]{1,3})进行三次匹配。

正则表达式在Python中应用

匹配字符串

re.match()方法用于从字符串开始处进行匹配,若在起始位置匹配成功则返回Match对象,否则返回None。match的使用方法如下:

re.match(pattern,string,flags)。其中pattern表示模式字符串,由要匹配的正则表达式转义而来,string表示要匹配的字符串,flags表示可选参数。用于控制匹配方式,如是否区分大小写常用的为re.I表示不区分大小写

import re

patten=r'mr_\w+'

string='MR_SHOP mr_shop'

match=re.match(patten,string,re.I)

print(match)

输出结果为:<re.Match object; span=(0, 7), match='MR_SHOP'>

re.serach()用于在整个字符串中搜索第一个匹配的值(从第一次出现的位置),若匹配成功返回Match对象,否则返回None

re.search(pattern,string,flags)

re.findall()用于在整个字符串中搜索所有符合正则表达式的字符串,并以列表的形式返回

re.findall(pattern,string,flags)

处理字符串替换字符串

sub()方法用于实现字符串的替换,格式如下

re.sub(pattern,repl,string,cout,flags)在这个表达式中,repl表示要替换的字符串,string表示要被查找的原始字符串,cout可选参数,表示模式匹配后替换的最大次数,默认为零,表示替换所有的匹配。

import re

pattern=r'1[34578]\d{9}'

string='中将号码为:84978981 联系电话为:13611111111'

result=re.sub(pattern,'1XXXXXXXXXX',string)

print(result)

输出结果为:中奖号码为84978981 联系电话为:1XXXXXXXXXX

分割字符串

split()方法用于实现根据正则表达式分割字符串,并以列表的形式返回,具体格式如下

re.split(pattern,string,maxsplit,flags)其中maxsplit为可选参数,表示最大的拆分次数

impotr re

pattern=r'[?|&]'

ctf='#/login.jsp?mr&mrsoft'

result=re.split(pattern,ctf)

print(result)

输出结果为:

['#/login.jsp','mr','mrsoft']

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:学习Python图片处理
下一篇:Python归并排序简介

2021年Python全套免费视频教程在哪里?

Python编程学习路线

Python最高有几级?

人工智能与语音遥控的区别?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省