2016-04-07 14 views
0

私はテキストファイルを持っています。パターンマッチが起こると、次のパターンが見つかるまでラインを印刷したいと思います。テキスト処理:条件とループ内でループする場合

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 

これはテキスト全体に対して行う必要があります。つまり、パターン 'pattern'と 'another_pattern'は複数回一致します。

答えて

2

変数を使用して、印刷するセクションにいるかどうかを追跡できます。

擬似コードで

、それは次のようになります。

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

(しかし、あなたはこのスニペットを使用するつもりなら条件を制限するために、特に注意を払う)

+0

私は間の行を印刷する必要があります2つのパターンがあまりにも一致します... –

+0

これはうまくいくはずです。なぜなら、終了パターンが見えない限り、 'needToPrint'が真となり、 – gturri

関連する問題