# ### 正则表达式 => 正则函数
# match 验证用户输入内容 search在正则表达式的前面加上^ 就与match函数一模一样
strvar = "y17166668888"
obj = re.search("^\d+",strvar)
obj=re.match("\d",strvar)
print(obj)
# re.split 语法 re.split("正则表达式",字符串,分割的次数-可选) 按正则表达式选出的字符串分割
strvar = "alex|wusir-xboyww&xgirlww"
res = re.split(r"[|\-&]",strvar)
print(res)
# sub 替换 返回的结果是一个字符串re.sub(r"[|&-]","%",strvar)
strvar = "alex|wusir-xboyww&xgirlww"
res = re.sub(r"[|&-]","%",strvar)
print(res)
# subn 替换 用法上与sub一样,但是返回的结果是元组(替换后的结果,替换的次数)
strvar = "alex|wusir-xboyww&xgirlww"
res = re.subn(r"[|&-]","%",strvar,1)
print(res)
# finditer 匹配字符串中相应内容,返回迭代器(装着对象的迭代器)
"""findall 与 finditer用法一样,区别在于 findall返回的是列表,finditer返回迭代器"""
from collections import Iterator,Iterable
strvar = "sdfsd&^*12招待费34sdf"
it = re.finditer("\d",strvar)
# compile 指定一个统一的匹配规则,用compile 用来编译一次,终身受益,不用对同一个正则反复编译啦
"""pattern = re.compile("\d") #编译 res = pattern.findall(strvar)使用"""
strvar = "sdfsd&^*12招待费34sdf"
pattern = re.compile("\d") #编译
print(pattern)
res = pattern.findall(strvar)
print(res)
# ### 修饰符
# re.I 使匹配对大小写不敏感 ("<h1>(.*?)</h1>",字符串,flags=re.I)
# re.M 使每一行都能够单独匹配(多行匹配),影响 ^ 和 $ ,就是把每一行都当成一个字符串取匹配
# re.S 使 . 匹配包括换行在内的所有字符(有换行的话匹配出来还有\n)
# flags=re.I|re.S 使用多个修饰符的写法 (拓展) #修饰符之间用|分割