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!