D22_1.1正则函数

跟風遠走 提交于 2019-12-04 04:56:43

# ### 正则表达式 => 正则函数

# 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 使用多个修饰符的写法 (拓展) #修饰符之间用|分割

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!