2017-05-02 56 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

正则表达式代码确实会创建输出。图书馆是进口商。 –