ホームページ >バックエンド開発 >Python チュートリアル >Python で複数行のテキスト ブロックを正規表現と照合する方法
Python で複数行のテキスト ブロックを正規表現と照合する
Python で複数行のテキストを扱う場合、正規表現の照合が困難になる場合があります。たとえば、「n」が改行を表す次のテキストについて考えてみましょう:
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 つの要素をキャプチャすることです:
次の正規表現のバリエーションを使用した以前の試みは、次のとおりです。失敗:
re.compile(r"^>(\w+)$$(\[.$]+)^$", re.MULTILINE) re.compile(r"(^[^>]\[\w\s]+)$", re.MULTILINE|re.DOTALL)
解決策:
複数行のテキストを正しく照合するには、次の正規表現を使用します:
re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)
Thisパターンは以下に一致します:
キーポイント:
代替解決策:
ターゲット テキストに改行 (n) 以外の他の種類の改行が含まれる可能性がある場合は、次のより包括的なバージョンを使用します:
re.compile(r"^(.+)(?:\n|\r\n?)((?:(?:\n|\r\n?).+)+)", re.MULTILINE)
以上がPython で複数行のテキスト ブロックを正規表現と照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。