re模块----->正则表达式

#_author:Star
#date:2019/11/8
#1.[]字符集
import re
ret=re.findall('a[c,d,e]b','aeb')
print(ret)#
ret1=re.findall('[a-z]','axb')
print(ret1)#['a', 'x', 'b']
#[]字符集------>取消元字符的特殊功能 \ ^ -
ret2=re.findall('[m,*]','axmb*')
print(ret2)#['m', '*']
ret3=re.findall('[m,,]','axmb*,')
print(ret3)#['m', ',']
# (1)-
ret4=re.findall('[1-9a-zA-Z]','axmb55623GHGSJCSH,')
print(ret4)#['a', 'x', 'm', 'b', '5', '5', '6', '2', '3', 'G', 'H', 'G', 'S', 'J', 'C', 'S', 'H']
ret5=re.findall('[1-9,a-z,A-Z]','axmb55623GHGSJCSH,')
print(ret5)#['a', 'x', 'm', 'b', '5', '5', '6', '2', '3', 'G', 'H', 'G', 'S', 'J', 'C', 'S', 'H', ',']
# (2)^放在[]里意味着取反
ret6=re.findall('[^f]','kdfjdhferw')
print(ret6)#['k', 'd', 'j', 'd', 'h', 'e', 'r', 'w']
ret7=re.findall('[^3,8]','kd3fjdhfe8rw')
print(ret7)#['k', 'd', 'f', 'j', 'd', 'h', 'f', 'e', 'r', 'w']
# (3)\


#3. |管道符

#2. \ 反斜杠
# 反斜杠后面跟元字符去除特殊功能
# 反斜杠后面跟普通字符实现特殊功能(如下2-1,2-18)
# (2-1) \d--->匹配任何十进制数,相当于类[0,9]
ret8=re.findall('\d{11}','gdsdhjsdjsjshd2347652987178628912678')
print(ret8)# ['23476529871', '78628912678']
# (2-2) \D--->匹配任何非数字字符,相当于类[^0,9]
ret9=re.findall('\D{11}','gdsdhjsdjsjshdokjiygdhy2347652987178628912678')
print(ret9)#['gdsdhjsdjsj', 'shdokjiygdh']
# (2-3) \s--->匹配任何空白字符,相当于类[ dssd]
ret10=re.findall('\sstar','dgsh star')
print(ret10)#[' star']
# (2-4) \S--->匹配任何非空白字符,相当于类[^dssd]
ret11=re.findall('\S','dgshstar')
print(ret11)#['d', 'g', 's', 'h', 's', 't', 'a', 'r']
ret11_=re.findall('\Sstar','dgshstar')
print(ret11_)#['hstar']
# (2-5) \w--->匹配任何字母数字字符,相当于类[a-zA-Z0-9]
ret12=re.findall('\wstar','dgshstar')
print(ret12)#['hstar']
ret13=re.findall('\wstar','dgsh star')
print(ret13)# []
# (2-5) \W--->匹配任何非字母数字字符,相当于类[^a-zA-Z0-9]
ret14=re.findall('\W','s$d]s@-d_m')
print(ret14)# ['$', ']', '@', '-']
ret15=re.findall('\W[$,#]','sg$h#s$#')
print(ret15)# ['$#']
# (2-6) \b--->匹配一个特殊字符的一个边界
ret16=re.findall(r'I\b','hello I am a DI,CT')
print(ret16)# ['I', 'I']
ret17=re.findall(r'\bI','hello I am a D%ICT')
print(ret17)# ['I', 'I']
print('--------------------------------------------')
# 匹配出第一个满足条件的结果
ret18=re.search('st','ihsdjwstghubustbjc')
print(ret18) # <re.Match object; span=(6, 8), match='st'>
print(ret18.group()) # st

# # 反斜杠后面跟元字符去除特殊功能
re1=re.search('a\.','a.hg').group()
print(re1)# a.
re2=re.search('a\+','a+hg').group()
print(re2)# a+
#第一种现象
# 飘红有两种情况,:因为一个顶两个(1)用四个\\\\(2)用r'\\'
re3=re.findall('\\\\','ugdhsdhs\c')
print(re3)# ['\\']
re4=re.findall(r'\\','ugdhsdhs\c')
print(re4)# ['\\']
#第二种现象
re5=re.search('\bblue','blue')
print(re5)# None
re5_=re.search(r'\bblue','blue')
print(re5_)# <re.Match object; span=(0, 4), match='blue'>
print(re5_.group())# blue
print('---------------------------')
# 4. ()----->做分组 | 管道符 ---->或(靠前)
print(re.search('(as)+','ggubeasas').group())# asas
print(re.search('go|8','go').group())# go
print(re.search('go|8','8go').group())# 8

print('---------------------------')
re1=re.search('(?P<id>\d{3})/(?P<name>\w{3})','dwdwdwdw56yy456/ppp')
print(re1.group())# 456/ppp
print(re1.group('id')) # 456
print(re1.group('name'))# ppp





猜你喜欢

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