【问题标题】:How to delete second and etc. symbols in string in Python?如何在 Python 中删除字符串中的第二个等符号?
【发布时间】:2022-01-28 17:34:52
【问题描述】:

示例。我有这句话:“Hello__my_beautiful___friends!” 我想要这个:“Hello_my_beautiful_friends!” 我怎样才能做到这一点?如何删除字符串中的2个或多个符号“_”?

【问题讨论】:

    标签: python replace


    【解决方案1】:

    你可以使用re.sub:

    In [5]: re.sub('_+', '_', s)
    Out[5]: 'Hello_my_beautiful_friends!'
    

    这使用re.sub(patter, replacement, string),其中_+ 表示一个或多个_,并将其替换为一个下划线。

    【讨论】:

    • 感谢您的回答。但我得到“&amp”而不是删除“_”
    • "Hello_&amp" 我明白了,我没有插入整个字符串
    【解决方案2】:

    这样

    my_string = "Hello__my_beautiful___friends!"
    while "__" in my_string:
       my_string = my_string.replace("__","_")
    

    请注意,循环是必需的,因为您可能需要删除连续的“__”,并且需要多次迭代

    【讨论】:

    • 你不需要循环; replace 将进行多次替换。它需要一个可选的第三个参数来限制替换的数量。
    • @chepner 如果连续有三个或更多下划线,您会这样做。
    • 有更好的处理方法。
    • 同意。多次通过是次优的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多