有没有办法替换字符串的结尾,从给定的子字符串开始

乘风 python 296

原文标题Is there a way to replace the end of a string, starting at a given substring

我有串香蕉| 10 并想从 | 替换所有内容到字符串的末尾 9 。我想要的输出是香蕉 | 9.我怎么能做到这一点?我研究了 .replace() , .split() 并将字符串转换为字符列表,然后循环遍历它们,直到找到应该替换的位,但就是想不通。

原文链接:https://stackoverflow.com//questions/71456305/is-there-a-way-to-replace-the-end-of-a-string-starting-at-a-given-substring

回复

我来回复
  • Amirhossein Kiani的头像
    Amirhossein Kiani 评论

    我建议你使用 re 模块(正则表达式模块):

    import re
    myString = "banana | 10"
    re.sub(r"|.+", r"| 9", myString)
    

    输出

    banana | 9
    
    2年前 0条评论
  • The fourth bird的头像
    The fourth bird 评论

    你可以捕捉 |后跟第 1 组中没有换行符的可选空格,并匹配要删除的行的其余部分。

    在替换使用捕获组 1 后跟 9

    import re
    
    s = "banana | 10"
    pattern = r"(|[^S
    ]*).*"
    print(re.sub(pattern, r"g<1>9", s))
    

    输出

    banana | 9
    

    如果要匹配数字和至少 1 个或多个空格,请使用:

    (|[^S
    ]+)d+
    

    请参阅 aregex 101 演示

    2年前 0条评论