我试图通过删除不需要的行来清理一系列文本文件。我想删除以与Regex1匹配的行开头的行,并继续删除,直到找到带有Regex2的行。我需要使用python来做到这一点。我已经使用类似
的sed命令完成了这项工作 sed -r '/regex1/,/regex2/d'
并祝你好运,但我需要能在Windows机器上运行的东西。另外,我希望整个解决方案使用一种语言,而不是在shell和python脚本之间进行管道。任何人有任何想法或帖子指向我?
答案 0 :(得分:2)
您可以使用re.DOTALL
使.
匹配换行符来执行此操作:
import re
pattern = re.compile(r"regex1.*?regex2", re.DOTALL)
然后,您可以使用pattern.sub("", data)
删除这些行。
答案 1 :(得分:2)
import sys,re
reg_start = 'reg1'
reg_end = 'reg2'
to_print = 1
for line in sys.stdin.readlines():
if re.search(reg_start, line):
to_print = 0
elif re.search(reg_end, line):
to_print = 1
if to_print:
print line,
答案 2 :(得分:0)