Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menangkap Blok Teks Berbilang Baris dengan Ungkapan Biasa dalam Python?

Bagaimana untuk Menangkap Blok Teks Berbilang Baris dengan Ungkapan Biasa dalam Python?

Barbara Streisand
Lepaskan: 2024-10-25 04:34:02
asal
1018 orang telah melayarinya

How to Capture Multiline Text Blocks with Regular Expressions in Python?

Ungkapan Biasa untuk Memadankan Blok Teks Berbilang Baris

Dalam Python, pemadanan teks merentas berbilang baris mungkin mencabar. Artikel ini menyediakan penyelesaian ringkas untuk menangkap blok berbilang baris dan kumpulan baris yang berkaitan dengannya.

Pertimbangkan format teks berikut:

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).
Salin selepas log masuk

Matlamatnya ialah untuk menangkap dua kumpulan: "beberapa TEKS Bervariasi " baris dan baris huruf besar seterusnya (tanpa baris baharu) dalam satu kumpulan tangkapan.

Lösungsansatz

re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)
Salin selepas log masuk

Erläuterung

  • ^: Padan dengan permulaan baris baharu.
  • .: Padan dengan mana-mana watak kecuali baris baharu.
  • : Padan dengan satu atau lebih ulangan.
  • n: Padan dengan watak baris baharu.
  • (?:...) : Mencipta kumpulan bukan menangkap yang sepadan dengan berbilang kejadian corak dalam baris.
  • () Kumpulan tangkap menyertakan dua bahagian perlawanan.

Beispiel

text = "some Varying TEXT\nDSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n[more of the above]\n[yep, there is a newline]\n(repeat the above)."
match = re.match(r"^(.+)\n((?:\n.+)+)", text, re.MULTILINE)
print(match.group(1))  # "some Varying Text"
print(match.group(2))  # "DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n[more of the above]\n[yep, there is a newline]"
Salin selepas log masuk

Pendekatan ini menggunakan modul semula Python dan pilihan MULTILINEnya untuk membolehkan padanan berbilang baris dan mengelakkan masalah berlabuh.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Blok Teks Berbilang Baris dengan Ungkapan Biasa dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan