2017-03-15 125 views
-1

給定一個字符串作爲輸入,我想查找並將字符串的整數元素轉換爲字符串num。這裏有一個例子:用文本文件中的字符串替換數字

輸入:

"abc 123 def 1 in 1s and 100MB" 

輸出:

"abc >num<def>num< in 1s and 100MB" 

我該怎麼辦呢?

+2

問題是什麼? –

+0

呵呵?不知道這裏發生了什麼 – The4thIceman

+1

它是最高級別的編程語言:) – kimreik

回答

1

使用regular expression

import re 

s = "abc 123 def 1 in 1s and 100MB" 

print(re.sub(r"\b\d+\b", ">num<", s)) 
# output: "abc >num<def>num< in 1s and 100MB" 

正則表達式串r"\b\d+\b",其由通過字邊界(\b)包圍的至少一個數字字符(\d+)的字符串相匹配。 \b部分也匹配字符串的開頭和結尾。

re.sub()呼叫由第二個參數(">num<")取代在第三個參數s匹配字符串的所有出現。

3

這就是這樣。

text_in = "abc 123 def 1 in 1s and 100MB" 
text_out = ' '.join(['>num<' if x.isnumeric() else x for x in text_in.split()]) 
print(text_out) # prints: abc >num<def>num< in 1s and 100MB 

我冒昧地認爲,你可以從文件中讀取的文本,也可以寫新的文本文件,所以我跳過那些部分。

這一切歸結爲使用isnumeric()