re模块
Posted gjx1212
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re模块相关的知识,希望对你有一定的参考价值。
一.简介
用于string的模糊匹配,而string内置的方法是精确匹配。
二.字符匹配
1 普通字符
用于精确匹配
2 元字符
. ^ $ * + ? { } | ( )
. 通配符除 其余均可匹配
^ 位置匹配,表示开始 $ 表示结束
import re ret=re.findall("^af","afghaf") print(ret) ret=re.findall("af$","afdfggaf") print(ret)
*,+,?,{}均表示重复次数
* 0~+oo
+ 1~+oo
? 1或0
{n,m} 表示n~m次 {1,}表示1到正无穷
[ ]一次只能匹配一个,可以表示一个匹配集,又有取消元字符的功能
[ ]中的特殊字符: ^取反 -表示范围
import re ret = re. findall( "[^4,5]" , "dgg4ffd5dd" ) print(ret) ret = re. findall("[^a-z,4,5]" ,"sccf5673374" ) print(ret)
:后面跟元字符,去除其特殊化,后面跟普通字符,增加特殊功能。
d D 表示数字 [0-9] s S表示空白字符[ fv]
w W表示[a-zA-Z0-9] 匹配一个特殊字符的边界,而不是匹配特殊字符(这里的特殊字符是非字母和数字的)
import re ret = re.findall(r "I","hello I am a LI$T") print(ret) ret = re.findall("a\\","asgvff")#匹配反斜杠 print(ret)
四个反斜杠,Python解释一个需要2个,re模块对这2个进行转义要4个。
( ):表示分组
import re ret = re.search("(?p<id>d{11}),(?p<name>[a-z]*) ","1445676556777567785ffhtfcg6") ret1=ret.group("id") ret2 = ret.group("name") print(ret1,ret2)
|:表示或者用于分组
以上是关于re模块的主要内容,如果未能解决你的问题,请参考以下文章