次のようなファイルがあります。
useless stuff
fruit: apple
fruit: banana
useless stuff
fruit: kiwi
fruit: orange
fruit: pear
useless stuff
アイデアは、すべての果物の名前を、表示される順序で、グループ別にキャッチすることです。上記の例では、出力は次のようになります。
[['apple', 'banana'], ['kiwi', 'orange', 'pear']]
複数行の regexp のすべての一致を繰り返し、'^fruit: (.+)$'
果物の名前が見つかった行が互いに続いているように見える場合は、同じリストに果物の名前を追加することで、これを行うことに成功しました。
ただし、これは果物の名前の置換を行うには実用的ではありません (マッチの開始インデックスと終了インデックスを追跡することが必須になります)。
私はこれを試しました:
re.findall(r'(?:^fruit: (.+)$\n)+', thetext, re.M)
ただし、1行しか返されません。
どこが間違っていますか?