# 正则表达式
# 是一个查找、搜索、替换文本的一种格式语言。
导入re
import re
# 1、创建原始字符串(待替换的字符串)
src_str = '{"mobilephone":"${not_existed_tel}","pwd":"123456","regname":"太阳"}'
# 2、定义模式字符串去进行匹配
# 模式字符串 == 模子
# match方法
# match方法是从头开始匹配的,如果匹配不上,那么返回None
res = re.match("{not_existed_tel}",src_str) print(res) res = re.match(r'{"mobilephone"',src_str) # 获取匹配的结果 print(res.group())
运行结果:
None {"mobilephone"
# search方法
# 如果能匹配上会返回一个match对象
# 匹配不上会返回 None
# $ 具有特殊含义,所以需要进行$ 转义
# search方法只查一次,一旦找到,就不会再继续查找
res1 = re.search(r"${not_existed_tel}",src_str) print(res1.group())
运行结果:
${not_existed_tel}
# findall方法——会匹配很多次
# 匹配 o 字母
# 返回结果为列表
res2 = re.findall(r"o",src_str) print(res2)
运行结果:
['o', 'o', 'o']
# 替换sub方法
# 第一个参数为模式字符串,第二个参数为新的字符串,第三个参数为原始字符串
# 如果能匹配上,那么返回匹配之后的字符串
# 如果匹配不上,那么返回原始字符串
res3 = re.sub(r"${not_existed_tel}","18978967865",src_str) print(res3)
运行结果:
{"mobilephone":"18978967865","pwd":"123456","regname":"太阳"}
if re.search(r"${not_existed_tel}",src_str): res4 = re.sub(r"${not_existed_tel}","18978967865",src_str) print(res4) else: print("无法匹配原始字符串")
运行结果:
{"mobilephone":"18978967865","pwd":"123456","regname":"太阳"}