簡體   English   中英

替換所有連續重復值的出現

[英]Replace all the occurrences of consecutive repeated pair of values

我有一個重復連續昏迷的字符串,我想在昏迷之間插入一個字符,例如零。 當我運行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'

這實現了預期的結果:

In [1]: re.sub(r",,", ",0,0" , "a,,,,,,,,,,,,,a",)
Out[1]: 'a,0,0,0,0,0,0,0,0,0,0,0,0,a'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM