D22_1.1正则函数

Posted banbosuiyue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了D22_1.1正则函数相关的知识,希望对你有一定的参考价值。

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

# 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 使 . 匹配包括换行在内的所有字符(有换行的话匹配出来还有 )
# flags=re.I|re.S 使用多个修饰符的写法 (拓展) #修饰符之间用|分割

 

以上是关于D22_1.1正则函数的主要内容,如果未能解决你的问题,请参考以下文章

java中用正则表达式把字符串“abd 22dfdf Dfd23434sf”变为Abd 22_dfdf Dfd_23434_sf一定要用正则表达式

[ Python - 6 ] 正则表达式实现计算器功能

2019/1.1/正则函数

VB.NET的正则表达式

正则表达式学习和常用正则验证规则(包括用户名,密码,手机号,网址等)

正则表达式不像预期的那么贪婪 /^(\d+)[^_]/