# 正则是匹配字符串的
import re
# s='holle, world'
# ret = s.replace('ll','xx')# hoxxe, world 替换
# print(ret)
# print(s.find('ll')) #查找 显示查找到2个
# print(s.split(' '))#['holle,', 'world' 分割
# print(s.split('w'))#['holle, ', 'orld'] 分割
#string提供的方法是完全匹配
#引入正则:模糊匹配
#pattern==规则 string==字符串
# ret = re.findall('ww{2}l','holle, world')#['worl']
# print(ret)
#. 是通配符
# ret = re.findall('w..l','holle, world')# .只能代指1个字符 .就是不能匹配换行符
# print(ret)
#^符
# ret = re.findall('^h...o','hellodfafda') #['hello'] ^值匹配开始的位置
# print(ret)
#$符
# ret = re.findall('a..x$','hellodfafdx') #['afdx'] $只在最后匹配
# print(ret)
#*重复匹配 (0.+oo)
# ret = re.findall('a*..x','heallaodfaaaaafdx') #['aaaaafdx'] 满足条件是a都匹配
# print(ret)
#+重复匹配 (1.+oo)
# ret = re.findall('a+b','heallaodfaaaaafdx') # [] #最少有1个 否则匹配不上 +只对前面的字符起作用
# print(ret)
#?[0,1] 就是有或没有
# ret = re.findall('a?b','heallabodfaaaaabfdx') #['ab', 'ab'] 只能匹配一个a
# print(ret)
#{} 任意的匹配
# ret = re.findall('a{1,4}b','aaaaab') #['aaaab'] #必须满足{}里的参数 也可以是个范围{0-9a-zA-Z} {1,3} 默认最大的参数匹配
# print(ret)
#*等于(0,+oo) +等于(1,+oo) ?等于(0,1) {1,} 不加就等于+oo 推荐用元字符
#[]字符集: 取消元字符的特殊功能 [ ^ -]除外
# ret = re.findall('a[bc]','ac') #('a[bc]','ab') ['ab'] ('a[bc]','ac') ['ac']
# print(ret)
# - 是 0-9 a-z A-Z 范围
# ^ 取反
# ret = re.findall('[^bc]','abcc') #['a'] 除bc都能取出
# print(ret)
# | 或的意思
#
#反斜杠后面跟元字符去除特殊功能
#反斜杠后面跟普通字符实现特殊功能
# d 匹配任何十进制数;它相当于类 [0-9]。
# D 匹配任何非数字字符;它相当于类 [^0-9]。
# s 匹配任何空白字符;它相当于类 [
fv]。
# S 匹配任何非空白字符;它相当于类 [^
fv]。
# w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
# W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]
# 匹配一个特殊字符边界,比如空格 ,&,#等
# ret = re.findall('d{11}','abcc6549649646498464198') #['65496496464']
# print(ret)
#
# ret = re.findall('w','fak asd') #['f', 'a', 'k', 'a', 's', 'd']
# print(ret)
# print(re.search('sb','adfasbdfafassb')) <_sre.SRE_Match object; span=(4, 6), match='sb'> 对象
# print(re.search('sb', 'adfasbdfafassb').group()) #sb 匹配出满足条件的第一个结果 search 后面跟.guroup
# set = re.search('a.','adfa').group() # 匹配ad
# print(set)
# set = re.search('a.','a.dfa').group() #a. . 点就是普通字符
# print(set)
# set = re.findall('\\','asbde') #['\'] PY解释器\ 正则\
# print(set) # 解释器要用 要用\----->去表示 正则需要 要用\----->去表示
# set = re.findall(r'\','asbde') #['\'] PY解释器\
# print(set)
# ret = re.findall(r'I','hoole,I am a LIST') #r=原生字符 ['I']
# print(ret)
#()
# print(re.search('(as)+','sdjkfasas').group()) #asas +贪婪匹配
# print(re.search('(as)|3','as3').group()) # as |是或的意思
# ret = re.match('asd','asdadafaasd') asd
# print(ret.group())
#正则的放大
# re.findall() 所有的结果都返回到列表里
# re.search() 返回的是一个对象(object) 对象可以调用group方法 返回结果
# re.match() 只在字符串开始匹配
# ret = re.split('[j,s]','sdjksal') #***** ['', 'd', 'k', 'al'] 先分J 在分S
# print(ret)
# ret = re.sub('s..x','alex','dafsdvxadfadfa') #dafalexadfadfa
# print(ret)
# obj = re.compile('.com')
# ret = obj.findall('dfadfa.comfafadf')
# print(ret) #['.com']