我有一个带有重复连续逗号的字符串,我想在逗号之间插入一个字符,例如零。当我运行 re.sub 时,它返回的是:
re.sub(r",,", ",0," , "a,,,,,,,,,,,,,a",)
'a,0,,0,,0,,0,,0,,0,,a'
我想要的结果是所有替换,例如:
'a,0,0,0,0,0,0,0,0,0,0,0,0,a'
我明白为什么会发生这种情况,模式中有重叠,但我不知道如何修复它。
最佳答案
您可以使用前瞻来匹配一个逗号后跟另一个逗号,并将匹配项替换为 ",0"
,例如:
>>> re.sub(r",(?=,)", ",0", "a,,,,,,,,,,,,,a")
'a,0,0,0,0,0,0,0,0,0,0,0,0,a'
或者不使用正则表达式:
>>> ",".join(x or "0" for x in "a,,,,,,,,,,,,,a".split(","))
'a,0,0,0,0,0,0,0,0,0,0,0,0,a'
关于python - 替换所有出现的连续重复值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23351637/