Python使用re.sub替换int-count值时整行被替换如何解决
问题修复说明
错误根因
你编写的正则替换回调函数仅返回了计算后的数值,没有保留匹配到的"int-count": 前缀。re.sub会将整段匹配到的文本(如"int-count": 1)全部替换为回调的返回值,因此最终行只剩数字,丢失了原有结构。
修复后代码
import re import fileinput # 自定义增量值,可按需修改为你的i值 increment = 1 with fileinput.input(files="file.xml", inplace=True, backup='.original.bak', mode='r') as f: for line in f: result = re.sub(r'"int-count": (\d+)', lambda exp: f'"int-count": {int(exp.group(1)) + increment}', line) print(result, end='')
可选优化:如果你的文件是标准JSON格式,更推荐用Python内置的
json库读取修改后再写入,比正则替换更稳定,能避免格式异常导致的替换错误。
内容的提问来源于stack exchange,提问作者TrustFound
相关产品推荐
相关产品推荐

