ホームページ >バックエンド開発 >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 つのコンポーネントをキャプチャすることです。「一部の可変テキスト」部分と、空の行を除く大文字テキストの後続のすべての行です。
間違ったアプローチ:
この問題を解決するためのいくつかの間違ったアプローチは次のとおりです:
解決策:
次の正規表現は、目的のコンポーネントを正しく取得します:
^(.+)\n((?:\n.+)+)
そのコンポーネントの内訳は次のとおりです:
使用法:
Python でこの正規表現を使用するには、次のコードを使用できます:
<code class="python">import re pattern = re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)</code>
その後、match() メソッドを使用して文字列内で一致するものを見つけることができます:
<code class="python">match = pattern.match(text) if match: text1 = match.group(1) text2 = match.group(2)</code>
以上が正規表現を使用して複数行のテキスト ブロックをキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。