正则表达式
4. 正则函数
1. search
search: 通过正则匹配出第一个对象返回 , 通过group取出对象中的值
import re
strvar = "1+2 3*4"
obj = re.search(r"\d+(.*?)\d+",strvar)
print(obj)
# 返回匹配到的内容 (匹配到一个就返回)
res = obj.group()
print(res)
# 返回分组里面的内容 , 类型是元组
tup = obj.groups()
print(tup[0])
2. match
match: 验证用户输入内容 , 当 search 函数里面的正则表达式前面加上 ^ 等价于 match 的用法
strvar = "13566668888"
obj = re.search(r"^\d+",strvar)
print(obj)
print(obj.group())
obj = re.match(r"\d+",strvar)
print(obj)
print(obj.group())
3. split 切割
strvar = "alex|xboyww&wusir%ritian"
res = re.split("[|&%]",strvar)
print(res) # ['alex', 'xboyww', 'wusir', 'ritian']
strvar = "alex234234xboyww6786wusir78967896ritian"
# [0-9] <=> \d
res = re.split("\d+",strvar)
res = re.split("[0-9]+",strvar)
print(res) # ['alex', 'xboyww', 'wusir', 'ritian']
4. sub 替换
语法结构: sub(正则 , 要替换的字符 , 原字符串[ , 次数])
strvar = "alex|xboyww&wusir%ritian"
res = re.sub("[|&%]","-",strvar)
print(res) # alex-xboyww-wusir-ritian
strvar = "alex|xboyww&wusir%ritian"
res = re.sub("[|&%]","-",strvar,2)
print(res) # alex-xboyww-wusir%ritian
# 传统 replace 替换的写法
strvar = "alex|xboyww&wusir%ritian"
strvar = strvar.replace("|","-").replace("&","-").replace("%","-")
print(strvar)
5. subn 替换
注意: subn 用法和 sub 一样 , 区别在于返回的是元组 (结果 , 次数)
strvar = "alex|xboyww&wusir%ritian"
res = re.subn("[|&%]","-",strvar) # ('alex-xboyww-wusir-ritian', 3)
res = re.subn("[|&%]","-",strvar,1) # ('al