ホームページ > バックエンド開発 > Python チュートリアル > 複数行のテキスト ブロックを Python 正規表現と照合する方法: 小文字コンポーネントと大文字コンポーネントをキャプチャする?

複数行のテキスト ブロックを Python 正規表現と照合する方法: 小文字コンポーネントと大文字コンポーネントをキャプチャする?

DDD
リリース: 2024-10-25 09:56:28
オリジナル
513 人が閲覧しました

How to Match Multiline Text Blocks with Python Regular Expressions: Capturing Lowercase and Uppercase Components?

複数行のテキスト ブロックを Python 正規表現で照合する

このプログラミングの質問では、複数行にまたがる特定の形式のテキストを照合することを目的としています。 。入力テキストは、小文字と大文字の交互のブロックで構成されます。小文字のテキストは基本コンポーネントを表し、大文字のテキストはアミノ酸のシーケンスを表します。

問題ステートメント

このタスクは、入力テキストから 2 つのコンポーネントを取得できる正規表現を Python で作成することです:

  1. 基本の小文字コンポーネント
  2. 2 つの行に現れる大文字の行のシーケンスその下の行

出力は 2 つのキャプチャ グループに分割され、基本の小文字コンポーネントがグループ (1) に、大文字シーケンスがグループ (2) に含まれます。

解決策

この問題を解決するには、次の正規表現を利用できます:

re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)
ログイン後にコピー

この正規表現は複数行モードで動作します。つまり、^ アンカーと $ アンカーは一致します。それぞれ行頭と行末。

説明

  • ^(. )$: 基本の小文字コンポーネントと単独で一致します。 line.
  • n((?:n. ) ): 基本コンポーネントに続く大文字テキストの連続行と一致します。

    • n:改行文字と一致します。
    • (?:n. ) : 1 つ以上の改行とそれに続く 1 つ以上の非空白文字 ( ) に一致する非キャプチャ グループ。

Usage

この正規表現を使用するには、次の手順に従います:

import re

text = """
some Varying TEXT
...
[lines of uppercase text]
...
"""

regex = re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)

match = regex.search(text)
if match:
    lowercase_text = match.group(1)
    uppercase_text = match.group(2)
    # Process the captured text as needed
ログイン後にコピー

以上が複数行のテキスト ブロックを Python 正規表現と照合する方法: 小文字コンポーネントと大文字コンポーネントをキャプチャする?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート