2
我需要一種方法來用一個字符串中的數字來替換所有出現的數字,並用它們的羅馬數字等值。用羅馬數字替換數字
例子:
My 3 Top Tips: Part 19
應該輸出My III Top Tips: Part XIX
Se7en
應該輸出Se7en
(因爲性格7
不是一個 '字')
這似乎是最好的包在那裏的工作是roman。不幸的是,它不會接受包含文本和數字的字符串。
我的想法是:
split()
文本- 迭代每個
word
- 是
word
一個數字,如果是使用roman
- 取代它再次融合在一起名單
這看起來很亂,容易出錯,而且不是非常pythonic。有什麼更好的方法來做到這一點?用正則表達式或列表理解,還是兩者結合都可能?
我會用正則表達式! – SIslam
是的,我很確定這就是要走的路!但是,我不知道如何用函數輸出替換一個匹配項 - 使用匹配本身作爲參數 – Arj
你看過[re.sub文檔](https://docs.python。組織/ 3 /庫/ re.html#應用re.sub)?我想不是,因爲如果你有,你會讀到「如果repl是一個函數,它被稱爲模式的每個非重疊事件。該函數接受一個匹配對象參數,並返回替換字符串。」 – rici