【问题标题】:How to replace several overlapped characters with one in Python [duplicate]如何在Python中用一个替换几个重叠的字符[重复]
【发布时间】:2020-09-04 11:55:03
【问题描述】:

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

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

并希望得到这个字符串:

'&word&word2&'

解决方法是这样的(我猜对大文本无效):

while True:
    if not '&&' in s:
        break
    s = s.replace('&&','&')

【问题讨论】:

  • 我猜你的意思可能是while '&&' in s: s = s.replace('&&', '&')。但是正则表达式更适合这项工作。
  • 是的,几乎一样。当然,我更喜欢更有效的解决方案。

标签: python python-3.x


【解决方案1】:

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

import re

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

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

print(res)
# &word&word2&

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2020-09-14
    • 2021-12-24
    • 2018-06-23
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    相关资源
    最近更新 更多