複数行のテキスト ブロックを一致させるための正規表現
複数行にまたがるテキストを一致させると、正規表現の構築に課題が生じる可能性があります。次のテキスト例を考えてみましょう:
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 でこの正規表現を使用するには、次のコードを使用できます:
import re
pattern = re.compile(r"^(. )\n((?:\n. ) )", re.MULTILINE)
その後、match() メソッドを使用して文字列内の一致を見つけることができます:
match = pattern.match(text)
if match:
text1 = match.group(1)
text2 = match.group(2)
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3