Я пытаюсь использовать регулярные выражения в Python для синтаксического анализа большого текстового файла с разделителями табуляции по строке и печатать строки, в которых строка содержит 5 или более экземпляров 0/1
или 1/1
.Как напечатать только строки с пятью или более совпадениями регулярного выражения?
Мой сценарий почти есть, но я борюсь с 5 или более экземплярами.
Это напечатает строки одним совпадением.
import re
f = open ("infile.txt", "r")
out = open("outfile.txt", "w")
for line in f:
if re.match(r"(.*)(0|1)/(1)(.*)", line):
print >> out, line,
Чтобы напечатать только те строки, которые имеют 5 или больше матчей я пытался findall
и finditer
следующим образом, но они не работали:
for line in f:
x = len(re.findall(r"(.*)(0|1)/(1)(.*)", line)):
if x > 5:
print >> out, line,
Может кто-нибудь помочь мне с этим?
Вот пример одной строки из текстового файла (все пространства вкладки в файле):
X 6529 . C A,G PASS AC=4,2;AF=0.6777 1/1:0,20 0/1:0,16 0/1:0,16 0/0:4,16 0/0:3,1
Как это не работает? Можете ли вы исправить ваш отступ? – tacaswell