如何在Python中用一个字符替换多个重叠字符

如何在Python中用一个字符替换多个重叠字符,python,python-3.x,Python,Python 3.x,我有一个字符串,类似这样的东西(我事先不知道序列中有多少相似的字符): 并希望获得以下字符串作为结果: '&word&word2&' 解决方法是这样的(我想对于大文本来说并不有效): 您可以使用正则表达式将出现的一个或多个“&”(&+)替换为“&”: 您可以使用正则表达式将出现的一个或多个“&”(&+)替换为“&”: 我猜,你可能是指,而s:s=s.replace('&&','&')中的'&&&')。但是正则表达式更适合这个工作。是的,它几乎是一样的。当然,我更喜欢更有

我有一个字符串,类似这样的东西(我事先不知道序列中有多少相似的字符):

并希望获得以下字符串作为结果:

'&word&word2&'
解决方法是这样的(我想对于大文本来说并不有效):


您可以使用正则表达式将出现的一个或多个“&”(
&+
)替换为“&”:


您可以使用正则表达式将出现的一个或多个“&”(
&+
)替换为“&”:


我猜,你可能是指
,而s:s=s.replace('&&','&')
中的'&&&')。但是正则表达式更适合这个工作。是的,它几乎是一样的。当然,我更喜欢更有效的解决方案。我想你可能是指
,而s:s=s.replace('&&','&')
。但是正则表达式更适合这个工作。是的,它几乎是一样的。当然,我更喜欢更有效的解决方案。
'&word&word2&'
while True:
    if not '&&' in s:
        break
    s = s.replace('&&','&')
import re

s = '&&&&&word&&&word2&&&'

res = re.sub(r'&+', '&', s)

print(res)
# &word&word2&