Python培训
400-996-5531
正则表达式作用
正则表达式主要应用于处理字符串,我们在用Python编程时经常需要查找符合某些复杂规则的字符串。正则表达式就是记录这些文本规则的代码,它能帮助你方便的检查一个字符串是否与某种模式匹配。
正则表达式基础
行定位符:^表示行的开始 ^tm表示要匹配字符串tm的开始位置如tm equl tomorrow字符串就可以匹配 。
$表示行的结尾,tm$匹配tm的结尾,如tomorrow moon equl tm可以匹配 。若为 tm ,则在结尾和开头都可以匹配。
元字符:
上面的行定位符也属于元字符,在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']
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved