Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Memadankan Blok Teks Berbilang Baris dengan Ungkapan Biasa Python: Menangkap Komponen Huruf Kecil dan Huruf Besar?

Bagaimana Memadankan Blok Teks Berbilang Baris dengan Ungkapan Biasa Python: Menangkap Komponen Huruf Kecil dan Huruf Besar?

DDD
DDDasal
2024-10-25 09:56:28414semak imbas

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

Memadankan Blok Teks Berbilang Baris dengan Ungkapan Biasa Python

Dalam soalan pengaturcaraan ini, kami menyasarkan untuk memadankan format teks tertentu yang merangkumi berbilang baris . Teks input terdiri daripada blok berselang-seli bagi teks huruf kecil dan huruf besar, dengan teks huruf kecil mewakili komponen asas, dan teks huruf besar mewakili urutan asid amino.

Pernyataan Masalah

Tugasnya ialah untuk mencipta ungkapan biasa dalam Python yang boleh menangkap dua komponen daripada teks input:

  1. Komponen huruf kecil asas
  2. Jujukan baris huruf besar yang muncul dua baris di bawahnya

Output hendaklah dibahagikan kepada dua kumpulan tangkapan, dengan komponen huruf kecil asas dalam kumpulan(1) dan urutan huruf besar dalam kumpulan(2).

Penyelesaian

Untuk menyelesaikan masalah ini, kita boleh menggunakan ungkapan biasa berikut:

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

Rex ini beroperasi dalam mod berbilang baris, bermakna ^ dan $ sauh akan sepadan dengan permulaan dan akhir baris, masing-masing.

Penjelasan

  • ^(. )$: Memadankan komponen huruf kecil asas sendiri baris.
  • n((?:n. ) ): Memadankan baris berturut-turut teks huruf besar yang mengikut komponen asas.

    • n: Padan dengan watak suapan baris.
    • (?:n. ) : Kumpulan tidak menangkap yang sepadan dengan satu atau lebih kejadian suapan baris diikuti oleh satu atau lebih aksara bukan ruang putih ( ).

Penggunaan

Untuk menggunakan regex ini, anda boleh mengikuti langkah berikut:

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

Atas ialah kandungan terperinci Bagaimana Memadankan Blok Teks Berbilang Baris dengan Ungkapan Biasa Python: Menangkap Komponen Huruf Kecil dan Huruf Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn