我有一个文件,我需要删除正则表达式匹配部分并将剩余的行写入文件。
正则表达式匹配代码以删除文件:
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
请帮我解决,答案将不胜感激!
答案 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,