2017-05-02 54 views
-2
fileinput = open('INFILE.txt', 'r') 
fileoutput = fileinput.read() 
replace = re.sub(r'([A-Za-z]),([A-Za-z])', r'\1\2', fileoutput) 
print replace 
replaceout = open('OUTFILE.txt', 'w') 
replaceout.write(replace) 

上面的代碼刪除任何信件中是否逗號或CapsLocks任何不信和之後的任何數字。如何在任何字母和數字之間插入逗號?我試試代碼如何插入逗號之間使用正則表達式

replace = re.sub(r"([a-z])([0-9])", r",\1", fileoutput) 

但它不起作用。任何建議如何在任何字母和數字之間插入逗號?

+0

請顯示您的文件中的示例輸入以及您希望插入逗號的位置/方式。 –

+0

Vilniausnuoma483,NuomaVilniuiiraplinkVilniu。我想在數字483之前插入逗號。 –

回答

1

這可能會幫助您瞭解如何添加逗號並引用您想要的內容。模式周圍的括號允許您捕獲正則表達式模式中的值,以便稍後返回。您捕獲的第一個引用爲\ 1和第二個\ 2,依此類推。

在方括號中,您告訴正則表達式您希望它匹配什麼,並且在正則表達式模式中沒有進一步的說明,它指的是它試圖匹配的單個字符。所以下面的代碼會在每個字符之間放一個逗號。

import re 

test = "123frogger" 

replace = re.sub(r'([A-Za-z0-9])', r'\1,', test) 

創建輸出

1,2,3,f,r,o,g,g,e,r, 

下面是根據您的意見一個以上有關您要調整什麼內容的更新。

import re 

test = "Vilniausnuoma483,NuomaVilniuiiraplinkVilniu" 

replace = re.sub(r'([A-Za-z])([0-9].*)', r'\1,\2', test) 

它會輸出以下內容。

Vilniausnuoma,483,NuomaVilniuiiraplinkVilniu 
+0

如果我在代碼中使用您的正則表達式,我得到NameError:name're'沒有被定義 –

+0

你有re庫的輸入嗎? – Aklys

+0

正則表達式代碼確實會創建輸出。圖書館是進口商。 –