我正在尝试在文本文件中的模式之后添加两个换行符,然后返回更正的文件,而不删除模式。到目前为止,我只是成功地取代了模式:
def cleanTxt (list_path, results_path):
with open (list_path,'r') as myText:
data = myText.read()
with open (results_path, 'w') as results_file:
new = re.sub(r'\[.*?\]','\n\n', data)
results_file.write(new)
results_file.close()
我也尝试过其他方法,例如
for pattern in re.findall(r'\[{1,3}\:\[{1,3}\:\[{1,3}\]',myText):
但是无处可去。
如何在将模式留在文本文件中时添加换行符?
感谢您的帮助。
答案 0 :(得分:2)
您只需要将匹配替换为匹配的文本,再加上两个换行符。在Python中,替换文本中的\g<0>
表示整个原始匹配(注意:这是不同语言的正则表达式实现之间的不一致区域)。所以试试:
new = re.sub(r'\[.*?\]', r'\g<0>\n\n', data)
答案 1 :(得分:0)
这是您的代码,只需进行一些修改即可使用:
def cleanTxt (list_path, results_path):
with open(list_path, 'r') as myText:
data = myText.read()
with open(results_path, 'w') as results_file:
newArr = re.split(r'\[.*?\]', data)
patt = re.findall(r'\[.*?\]', data)
new = ""
for i in xrange(len(patt)):
new += newArr[i]
new += patt[i]
new += "\n\n"
new += newArr[-1]
results_file.write(new)
results_file.close()