簡體   English   中英

Python:向后翻閱一個字符串,然后刪除特定字符后的所有內容

[英]Python : go backwards through a string, then remove everything after a specific character

我有一個字符串,在一個字符之后,我希望刪除字符后的所有內容。 但是,問題是我在字符串中有多個這樣的字符,而且只有我希望刪除的最后一個字符。

例如:

str = "howdie how are you? are you good? sdfsdf"
str = str.RemoveEverythingAfterLast("?")
str = "howdie how are you? are you good?"

我想知道在python中是否有一種有效的方法可以做到這一點? 我曾經想過通過字符串向后循環刪除字符1 1,直到找到我正在尋找的字符(例如'?')。 但我想知道是否有更有效的方法來解決這個問題?

使用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?'

使用正則表達式:

str = re.sub("(.*\?).*", "\\1", str)

捕捉到最后一組? 並用捕獲的組\\\\1替換它。

你可以使用str.rfind切片

>>> string = "howdie how are you? are you good? sdfsdf"
>>> string[:string.rfind("?") + 1]
'howdie how are you? are you good?'
>>>

+ 1會導致? 留在返回的字符串的末尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM