首页 > 解决方案 > 用空格替换所有“_”实例。如果序列中有超过 1 个实例,则仅替换为 1 个空格

问题描述

我需要编写一个 Python 函数,它将用空格替换所有下划线实例。如果有 2 个或多个连续的下划线,则需要将它们替换为单个空格。

我可以替换字符,但不限制被替换的空格数。

def replace_trash(strg):
    newStr = ''
    for i in strg:
        if i != '_':
            newStr += i
        else:
            newStr += ' '
    return newStr

print (replace_trash('Please__help___me_to_solve___this_____problem'))

预期结果是:请帮我解决这个问题

标签: pythonpython-3.x

解决方案


用一个空格替换正则表达式的所有匹配项(+ = 一个或多个' ')

import re
def replace_trash(string):
  return re.sub('_+', ' ', string)


print(replace_trash('Please__help___me_to_solve___this_____problem'))

推荐阅读