仅替换指定的字符串Python正则表达式

2024-10-02 18:25:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在python中使用re模块,我一直想替换的是只指定出现的字符串。 例如

import re
string = "aabbaabbaabbabbaabbaa"
#I want to replace only 3rd time 'bb' appeared in the string with white space
string = re.sub("bb"," ",string,3)   #if iI do this all first 3 occurrences got replaced
print(string)

输出

aa aa aa aabbaabbaa

知道如何只替换第三次出现的内容吗
因此,输出看起来像这个

aabbaabbaa aabbaabbaa

Tags: 模块to字符串importreonlystringtime
2条回答

这可能不是一个完美的方法,但却是一个解决方案:

string = re.sub('bb',' ',string, 3)
string = re.sub(' ','bb',string,2)

这只是我能想到的另一种解决办法

修改正则表达式,使其仅与第三个匹配

re.sub(r'(.*?bb.*?bb.*?)bb', r'\1 ', string, 1)

这可以扩展到大量重复,如r'(.*?(bb.*?){9999})bb'

相关问题 更多 >