Python基础16模块-re模块

Posted josie930813

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础16模块-re模块相关的知识,希望对你有一定的参考价值。

1.正则表达式

#^表示在字符串开头匹配,$表示在字符串结尾匹配
#*匹配0到无穷多个
#+匹配1到无穷多个
#?匹配0或者1个
#{}定义匹配个数{0,}==*,{1,}==+,{0,1}==?,{6}=={1,6}
#上面的元字符一般都是贪婪匹配,在后面加上?变成惰性匹配
#[]匹配括号里的字符,只匹配一次,^表示不包含,-表示范围,表示转义字符,其他在中括号里都无特殊意义
#d 匹配任何十进制的数
#D 匹配任何非数字字符
#s 匹配任何空白字符
#S 匹配任何非空白字符 
#w 匹配任何字母数字字符
#W 匹配任何非字母数字字符
# 匹配一个特殊边界字符,比如空格,#,&
#?:去匹配优先级
import re
ret = re.findall("www.(baidu|163).com","www.baidu.com")
print(ret)
ret = re.findall("www.(?:baidu|163).com","www.baidu.com")
print(ret)
#结果为:[‘123‘, ‘564‘]
#注:类似由于在python解释器上会默认转化,这样传到re解释器上就会有差异,所以在re模块下应该变为\b或者用r‘‘

2.re模块的方法

#search()匹配一个就返回,返回一个对象,如果匹配不到就不返回,用group()方法调用,如果正则表达式用分组形式如(?p<name>[a-z]+)则可用group(name)取出对应分组匹配的内容
#match()从开头开始匹配,匹配一个就返回,返回一个对象,同样用group()调用
#findall()所有符合正则表达式的都匹配,返回一个列表
#split()用正则表达式匹配的字符串进行分割,如re.split("[ab]","abc")结果为[" "," ","c"]先按照a分割再对结果按照b分割
#compile()绑定正则表达式
import re
com = re.compile("d+")
print(com.findall("fjsdf123eewfwe564sdf"))
#结果为:[‘123‘, ‘564‘]                            
#finditer()所有符合正则表达式的都匹配,返回一个迭代器
import re
ret = re.finditer("d","sdf145dfsdf5456")
print(next(ret).group())
print(next(ret).group())
#结果为1
#     4
#sub()将正则表达式匹配的字符串替换成指定字符串如:re.sub("d","A","a12f")结果为"aAAf",默认为全部替换,也可指定替换次数,如:re.sub("d","A","a12f",1)表示只匹配一次,结果为"aA2f"
#subn()跟sub()功能一样,返回的是一个元组,包含结果跟匹配的次数

 

  

以上是关于Python基础16模块-re模块的主要内容,如果未能解决你的问题,请参考以下文章

Python基础之re模块

Python 基础之re 模块

python16_day06类RE模块subprocess模块xml模块shelve模块

Python学习16 正则表达式2 re模块

Python基础13_正则表达式,re模块,

Python基础(13)_python模块之re模块(正则表达式)