2

繰り返し文字列の間のすべてのデータを抽出したい

本文はこんな感じ

map report for 0

...................
..............
lot of data in between
.....
......

map report for 1

これに対する私の正規表現は

map = re.findall(r"map report for(.+?)\S*\W*map", filestring, re.S)

これは、検索文字列の後に偶数の行のみを返します(奇数部分が前の偶数反復に含まれていると思います)

回避策はありますか?

4

3 に答える 3

2

あなたの正規表現は、偶数一致から単語を消費します。map先読みが必要です:

map=re.findall(r"map report for(.+?)\S*\W*(?=map)",filestring,re.S)

このようにして、一致が my に従っているかどうかを確認しますが、消費さmapれません。

于 2013-10-16T12:21:38.087 に答える