我有一个字符串,在一个字符之后我希望删除字符后的所有内容。但是,问题是我在字符串中有多个这样的字符,而且只有我希望删除的最后一个字符。
例如:
str = "howdie how are you? are you good? sdfsdf"
str = str.RemoveEverythingAfterLast("?")
str = "howdie how are you? are you good?"
我想知道在python中是否有一种有效的方法可以做到这一点?我曾想过在字符串中向后循环删除1到1的字符,直到找到我正在寻找的字符(例如'?')。但我想知道是否有更有效的方法来解决这个问题?
答案 0 :(得分:7)
''.join(string.rpartition('?')[:2])
演示:
>>> string = "howdie how are you? are you good? sdfsdf"
>>> ''.join(string.rpartition('?')[:2])
'howdie how are you? are you good?'
答案 1 :(得分:1)
使用正则表达式:
str = re.sub("(.*\?).*", "\\1", str)
将该群组捕获到最后?
,并将其替换为捕获的群组\\1
。
答案 2 :(得分:1)