逐行搜索正则表达式并在匹配后打印多行

时间:2015-04-30 20:09:31

标签: python regex

刚开始编写脚本。

我试图在匹配第一行中的正则表达式后编写4行,并通过一个包含数千行的非常大的文件来执行此操作。

#!/usr/local/bin/python
import sys
import string
import re

print"what file would you like to search?"
filename = sys.stdin.readline()
filename = filename.rstrip()
print "enter a barcode"
barcode=sys.stdin.readline()
barcode=barcode.rstrip()
regex=":0:"+barcode
infile = open(filename, "r")
outfile = open("sample_write.fastq", "w")
regex_object = re.compile(regex, re.I)
for line in infile:
   m=regex_object.search(line)
   if m:
      outfile.write(line)
exit

这会将匹配字符串(条形码)的行写入我的outfile,但是,我需要在匹配到目标文件后写入带条形码的行和以下3行。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容匹配

.*(BARCODE).*\n.*\n.*\n.*    //replace BARCODE with your variable

并将匹配项(\0)写入目标文件

请参阅DEMO

修改:使用regex =".*("+barcode+").*\n.*\n.*\n.*"