Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menangkap Blok Teks Berbilang Baris dengan Ungkapan Biasa?
Ungkapan Biasa untuk Pemadanan Blok Teks Berbilang Baris
Teks pemadanan yang merentangi berbilang baris boleh memberikan cabaran dalam pembinaan ungkapan biasa. Pertimbangkan contoh 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)
Matlamatnya ialah untuk menangkap dua komponen: bahagian "sesetengah TEKS Berubah-ubah" dan semua baris teks huruf besar seterusnya, tidak termasuk baris kosong.
Pendekatan Salah:
Beberapa pendekatan yang salah untuk menyelesaikan masalah ini termasuk:
Penyelesaian:
Ungkapan biasa berikut menangkap komponen yang dikehendaki dengan betul:
^(.+)\n((?:\n.+)+)
Berikut ialah pecahan komponennya:
Penggunaan:
Untuk menggunakan ungkapan biasa ini dalam Python, anda boleh menggunakan kod berikut:
<code class="python">import re pattern = re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)</code>
Anda kemudian boleh menggunakan kaedah padanan() untuk mencari padanan dalam rentetan:
<code class="python">match = pattern.match(text) if match: text1 = match.group(1) text2 = match.group(2)</code>
Atas ialah kandungan terperinci Bagaimana untuk Menangkap Blok Teks Berbilang Baris dengan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!