re模块---正则表达式

#_author:Astar
#date:2019/11/7
#正则表达式
#作用---->匹配字符串
s='hello star'
print(s.find('ll'))# 2
ret=s.replace('ll','ww')
print(ret)#hewwo star
t=s.split(' ')
print(t)#['hello', 'star']
#字符串提供的方法是完全匹配
#引入正则---模糊匹配
import re
#一-----字符匹配(普通字符,元字符)
result=re.findall('w\w{2}l','hello world')
print(result)#['worl']
#1普通字符
ret=re.findall('star','ugdfgdsjfiduhkshdsarfdfdstarjfhdjf')
print(ret)#['star']
#2元字符---> . ^ $ * + ? {} {} | ( ) \
#(1)通配符
result1=re.findall('w..l','hello world') # .(通配符)代指所有的字符,除了换行符以外 , .只能代指任意一个字符
print(result1)#['worl']
result2=re.findall('w.l','hello w\nld')
print(result2)# [] 除了换行符以外
#(2)尖角符
ret1=re.findall('^h...o','hdhjoadkjssndshellozjzx')
print(ret1)# ['hdhjo'] ^ 代表只匹配最开始
#(3)$代表在结束进行匹配
ret2=re.findall('w.....r$','hdhjoadkjssndshellozjzxwdidusr')
print(ret2)#['wdidusr'] $代表在结束进行匹配
#(4)* 重复匹配(0,+oo)
ret3=re.findall('ba*','hjfdfskfjkdsfksdfjsbaaaaaa')
print(ret3)#
ret4=re.findall('.*','hjfdfskfjkdsfksdfjsbaaaaaa')
print(ret4)# ['hjfdfskfjkdsfksdfjsbaaaaaa', ''] (0也为匹配项)
ret5=re.findall('s.*i','sgdjdsjakastarweihsdhsad')
print(ret5)# ['sgdjdsjakastarwei']
#(5)* 重复匹配(1,+oo)
ret6=re.findall('ab+','hjefiefsihabbbbbbbbnb')# 只对+前面的进行匹配
print(ret6)#['abbbbbbbb']
ret7=re.findall('a+b','jhjfhejjjsjaaaabkjfgkfgjaabb')
print(ret7)#['aaaab', 'aab']
#(6)? ------>[0,1]
ret8=re.findall('a?b','jhjfhejjjsjaaaabkjfgkfgjaabb')
print(ret8)#v['ab', 'ab', 'b'] ---------- 0到1个a(是?前面的元素进行匹配)
#(7){ } ------里面可以加范围
ret9=re.findall('a{5}b','vaaaaab')
print(ret9)# ['aaaaab']
ret10=re.findall('a{1,3}b','aaaab')
print(ret10)# ['aaab'] 以最大进行匹配(贪婪匹配)

# *等价与{ 0,正无穷} 推荐 * + ?
# +等价与{ 1,正无穷}
# ?等价与{ 0,1}
#什么都不加代表正无穷 {1,}------{1,正无穷}

猜你喜欢

转载自www.cnblogs.com/startl/p/11811294.html