Python:反向遍历字符串,删除特定字符后的内容
我有一个字符串,我想在某个字符后面删除所有内容。不过问题是,这个字符串里有多个这样的字符,我只想删除最后一个字符后面的内容。
比如:
str = "howdie how are you? are you good? sdfsdf"
str = str.RemoveEverythingAfterLast("?")
str = "howdie how are you? are you good?"
我在想有没有什么高效的方法可以在Python中做到这一点?我曾考虑过从字符串的后面开始循环,逐个删除字符,直到找到我想要的那个字符(比如例子中的'?')。但我在想有没有更有效的方法来处理这个问题?
3 个回答
1
使用正则表达式:
str = re.sub("(.*\?).*", "\\1", str)
这个方法是把从开始到最后一个?
之间的内容都抓住,然后用抓到的内容\\1
来替换掉。
7
使用 str.rpartition()
方法:
''.join(string.rpartition('?')[:2])
示例:
>>> string = "howdie how are you? are you good? sdfsdf"
>>> ''.join(string.rpartition('?')[:2])
'howdie how are you? are you good?'