所以我有一個很長的字符串列表的格式相同,我想找到最後一個「。」。每一個字符,並用「。 - 」代替。我試過使用rfind,但我似乎無法正確使用它來做到這一點。找到最後一次出現的字符串中的子串,替換
回答
這應該這樣做
old_string = "this is going to have a full stop. some written sstuff!"
k = old_string.rfind(".")
new_string = old_string[:k] + ". - " + old_string[k+1:]
我會使用一個正則表達式:
import re
new_list = [re.sub(r"\.(?=[^.]*$)", r". - ", s) for s in old_list]
這是唯一可行的答案如果根本沒有點。儘管如此,我會使用一個lookahead:'\。(?= [^。] * $)' – georg
@ thg435:好主意,謝謝! –
幼稚的做法:
a = "A long string with a . in the middle ending with ."
fchar = '.'
rchar = '. -'
a[::-1].replace(fchar, rchar[::-1], 1)[::-1]
Out[2]: 'A long string with a . in the middle ending with . -'
阿迪亞Sihag的回答有一個rfind
:
pos = a.rfind('.')
a[:pos] + '. -' + a[pos+1:]
這也反轉了替換字符串。除此之外,這是根本答案的重複,並且,正如我所說的那樣,效率很低。 –
@Lattyware你的意思是顛倒'a'? –
我的意思是顛倒''。在輸出中。 –
要從右取代:
def replace_right(source, target, replacement, replacements=None):
return replacement.join(source.rsplit(target, replacements))
在使用中:
>>> replace_right("asd.asd.asd.", ".", ". -", 1)
'asd.asd.asd. -'
+1,我喜歡這個版本。簡單而有效,並且沒有明顯的低效率。 –
啊,我很喜歡這個。還要感謝! –
爲了清晰起見,我採取了一些自由行爲來重構你的例子,並使其與OP的例子相匹配。我很難改變答案 - 但核心內容是相同的,我覺得它改善了它,所以希望應該沒問題。 –
- 1. 替換字符串中最後一次出現的字符
- 2. 替換字符串中最後出現的子字符串
- 3. 替換字符的最後一次出現的字符串
- 4. 替換字符串中最後一次出現的單詞 - c#
- 5. 的JavaScript:替換字符串文本中最後一次出現
- 6. Java僅替換字符串中第一次出現的子串
- 7. 如何查找Swift字符串中子字符串的最後一次出現?
- 8. 第一次替換字符串中出現的字符串VB.NET
- 9. C++:查找字符串中字符的最後一次出現
- 10. 如何找到字符串中最後一次出現的字符串?
- 11. XSL子串 - 在最後一次出現字符串後
- 12. Javascript/jQuery - 替換字符串中最後一個字的出現
- 13. 替換json字符串的第一次和最後一次出現
- 14. 查找字符串中字符的最後出現次數
- 15. PHP:查找字符串中的最後一次出現
- 16. PHP替換多行字符串中最後一次出現的字
- 17. 最後一次出現「|」後的VBScript選擇子字符串
- 18. 查找字符串到最後出現
- 19. 替換字符串中出現的第n個子字符串
- 20. 查找字符串中第一次出現子串的位置
- 21. 如何在python字符串中找到第一次出現的子字符串?
- 22. rreplace - 如何替換字符串中最後一次出現的表達式?
- 23. 查找字符串的最後一次出現
- 24. 找到字符串中最後一個出現的字符串Python
- 25. 首次出現後,替換字符串中的元素
- 26. 如何查找NSString中最後一次出現的子字符串?
- 27. 在SQL中的字符串中替換第一次出現的子串字符串
- 28. Python字符串替換()方法只替換第一次出現
- 29. 在flex中的字符串中最後一次出現字符串
- 30. 如何查找字符串中最後一次出現的字符集
一個襯墊非常棒,但最好是'str.rfind()'來提高效率。 –
非常感謝。一定要研究一下......這是利用切片,對吧? –
@AdamMagyar是的,容器[a:b]從容器的最多b-1索引切片。如果'a'被省略,那麼它默認爲0;如果省略'b',則默認爲len(容器)。加號運算符只是連接在一起。您指出的rfind函數將返回替換操作應發生的索引。 –