2016-04-07 35 views
0

Bir metin dosyanız var. Bir desen eşleşmesi olduğunda, bir sonraki model bulunana kadar satırları yazdırmak istiyorum. Metin işleme: durum ve başka bir döngü içinde döngü varsa

for line in text: 
    if pattern in line: 
     if another_pattern in line: 
      print all the lines until pattern_X is found. 
      Continue with the execution from the next line 

Bu

kereden fazla maç olacak, tüm metni için yani paterni 'desen' ve 'another_pattern' yapılmalıdır.

cevap

2

Yazdırmanız gereken bir bölümde olup olmadığınızı takip etmek için bir değişken kullanabilirsiniz.

Sözde kodda

, bu gibi görünebilir:

needToPrint = False 
for line in text: 
    if needToPrint: 
    print line 
    if pattern in line: 
    needToPrint = True 
    if another_pattern in line: 
    needToPrint = False 

(ama bu pasajı kullanmaya gidiyoruz koşulları sınırlamak için özellikle dikkat) Ben aradaki satırları yazdırmak gerekiyor

+0

iki model de eşleşiyor ... –

+0

bu yüzden işe yaramalı, çünkü bitiş desenini görmediğimiz sürece, 'needToPrint' doğru olacak ve bu yüzden çizgiyi yazdıracağız – gturri