import re
'''
re常用的几种用法
match 从头匹配
findall 查找所有
search 查找第一个匹配项
split 按规则拆分成列表
sub 查找并替换
'''
#编译正则,提高运行速率
rule = re.compile("[0-9]+")
#^匹配字符串开头和\A效果一样,+匹配一个或多个
result = re.match("[0-9]+", "788absdfsd123vfg456sdf!") #匹配788
print(result.group())
#$匹配字符串结尾 \W匹配非数字字母下划线
result = re.search("[a-z]+\W$", "788absdfsd123vfg456sdf!") #匹配sdf!
print(result.group())
#查找字符串内所有的匹配项 \d匹配数字效果同[0-9]
result = re.findall("\d+", "788absdfsd123vfg456sdf!") #['788', '123', '456']
print(result)
#把字符串按规则拆分成列表
result = re.split("[0-9]+", "788absdfsd123vfg456sdf!") #['', 'absdfsd', 'vfg', 'sdf!']
print(result)
#把指定字符串按正则匹配项替换成指定字符,可以指定次数
result = re.sub("[a-z]+", "|", "788absdfsd123vfg456sdf!", count=2) #788|123|456sdf!
print(result)
#?匹配0个或1个前面的表达式的片段,非贪婪方式,匹配's' 0个或者1个
result = re.search("as?", "sdf124dfsdfaa") #可以匹配'a'或'as' 没有'as'所以匹配a
print(result.group())