删除匹配文件部分的正则表达式

时间:2014-08-28 17:58:11

标签: python regex

我有一个文件,我需要删除正则表达式匹配部分并将剩余的行写入文件。

正则表达式匹配代码以删除文件:

import re
with open("in1.txt") as f:
   lines = f.read()
   m = re.findall(r'(?s)(my _car_\s*.*?)my', lines)

输入文件:

my _car_(10)
   skoda
  audi

my home
 good

my _car_(11)
 benz

预期产出:

my home
 good

请帮我解决,答案将不胜感激!

2 个答案:

答案 0 :(得分:1)

假设你能够写出来的话,this regex replacement可能就是你要找的东西

lines = re.sub(r'(?s)(my _car_\s*.*?)(my|$)', r'\2', lines).strip()

听起来你不知道如何写出文件。将文本转储到名为 out.txt 的文件:

with open('out.txt', 'w') as f:
    f.write(lines)

答案 1 :(得分:0)

import re
with open("in1.txt") as f:
   lines = f.read()
   m = re.sub(r'(?s)my _car_.*?(?=my|$)', '', lines)
   m = re.sub(r'\n+', '\n', m)
   print m,