複数行のテキスト ブロックを一致させるための正規表現
Python では、複数行にわたるテキストの一致は困難な場合があります。この記事では、複数行のブロックとそれに関連する行グループをキャプチャするための簡潔な解決策を提供します。
次のテキスト形式を考えてみましょう:
some Varying TEXT DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF [more of the above, ending with a newline] [yep, there is a variable number of lines here] (repeat the above a few hundred times).
目標は、2 つのグループをキャプチャすることです。 1 つのキャプチャ グループ内の " 行と後続の大文字行 (改行なし)。
Lösungsansatz
re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)
Erläuterung
Beispiel
text = "some Varying TEXT\nDSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n[more of the above]\n[yep, there is a newline]\n(repeat the above)." match = re.match(r"^(.+)\n((?:\n.+)+)", text, re.MULTILINE) print(match.group(1)) # "some Varying Text" print(match.group(2)) # "DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n[more of the above]\n[yep, there is a newline]"
このアプローチでは、Python の re モジュールとその MULTILINE オプションを利用して、複数行のマッチングを有効にし、アンカーリングの問題を回避します。
以上がPython で正規表現を使用して複数行のテキスト ブロックをキャプチャする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。