删除文件的正则表达式匹配部分
我有一个文件,我需要删除正则表达式匹配部分,并将剩余的行写入文件。删除文件的正则表达式匹配部分
正则表达式匹配代码来删除文件:
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
请帮我解决这个问题,答案将不胜感激!
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,
的[解析使用正则表达式和打印线(
其未被删除,请帮忙! – 2014-08-28 18:36:52
您需要打开文件并将'm'的内容写入文件。 – 2014-08-28 18:41:14
假设你能够行写出来,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)
我得到相同的'文件它没有删除! – 2014-08-28 18:35:15
可能重复http://stackoverflow.com/questions/25553575/parse- using-regex-and-print-the-line) – Dalorzo 2014-08-28 17:59:02
澄清:您试图删除所有以符合正则表达式的行之后的空格开头的行? – 2014-08-28 18:01:45
不,我需要盲目删除匹配正则表达式的行 – 2014-08-28 18:03:44