如何逐个替换字符串中匹配的每个模式实例?
需求:逐个替换字符串中的匹配模式实例为=REPLACED
需要实现的功能:将目标字符串中的每一个指定模式实例逐个替换为=REPLACED,即每次仅替换一个匹配项,输出对应的结果。
现有实现代码(replace.py)
import re a = "http://www.blah.com/?=wah?=stuff.something" # 待处理的目标字符串 b = "=" # 要匹配查找的模式 z = a # 创建目标字符串的副本 x = "REPLACED" # 用于替换的内容 if b not in z: print("NOT FOUND") else: # 获取所有匹配模式的起始位置 start_indc = [m.start() for m in re.finditer('(?=' + b + ')', a)] for m in range(len(start_indc)): print(f"A:{a}") print(f"X:{x}") print(f"B:{b}") print(f"Z:{z}") # 执行替换操作 z = re.sub(b, b + x, z) print(f"A:{a}") print(f"X:{x}") print(f"B:{b}") print(f"Z:{z}") print("---------------------------------------------------------------") del z # 清空当前z变量 z = a # 将z重置为原始目标字符串
预期输出结果
- 替换第一个匹配项后的结果:
http://www.blah.com/?=REPLACEDwah?=stuff.something - 替换第二个匹配项后的结果:
http://www.blah.com/?=wah?=REPLACEDstuff.something
内容的提问来源于stack exchange,提问作者bob charliepoo
相关产品推荐
相关产品推荐

