Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Memadankan Aksara Baris Baharu dalam Regex Apabila Mengekstrak Kandungan daripada Tag HTML?

Bagaimanakah Saya Boleh Memadankan Aksara Baris Baharu dalam Regex Apabila Mengekstrak Kandungan daripada Tag HTML?

Susan Sarandon
Susan Sarandonasal
2024-11-01 01:31:28327semak imbas

How Can I Match Newline Characters in Regex When Extracting Content from HTML Tags?

Padankan Aksara Baris Baharu dengan Pengubahsuai Regex DOTALL

Apabila bekerja dengan rentetan yang mengandungi aksara biasa, ruang putih dan baris baharu yang disertakan dalam teg div HTML, matlamatnya adalah untuk mengekstrak kandungan antara

dan
menggunakan ungkapan biasa. Isu biasa timbul apabila aksara meta .* standard gagal padan dengan baris baharu.

Untuk mengatasinya, seseorang mesti menggunakan pengubah suai DOTALL (/s). Pengubah suai ini memastikan bahawa aksara titik (. dalam regex) sepadan dengan semua aksara, termasuk baris baharu. Dengan memasukkan pengubah suai ini ke dalam regex, adalah mungkin untuk menangkap kandungan dengan tepat dalam teg div:

'/<div>(.*)<\/div>/s'

Walau bagaimanapun, pendekatan ini boleh mengakibatkan padanan yang tamak. Untuk menangani perkara ini, menggunakan padanan yang tidak tamak adalah disyorkan:

'/<div>(.*?)<\/div>/s'

Sebagai alternatif, memadankan segala-galanya kecuali < juga boleh menjadi penyelesaian jika tiada teg lain hadir:

'/<div>([^<]*)<\/div>/'

Perlu diambil perhatian bahawa menggunakan aksara selain / kerana pembatas regex boleh meningkatkan kebolehbacaan, menghapuskan keperluan untuk melarikan diri / dalam . Berikut ialah contoh menggunakan # sebagai pembatas:

'#<div>([^<]*)</div>#'

Walaupun penyelesaian ini mungkin mencukupi untuk kes mudah, adalah penting untuk mengakui bahawa HTML adalah kompleks dan penghuraian regeks sahaja mungkin tidak mencukupi. Untuk memastikan penghuraian yang komprehensif dan boleh dipercayai, adalah dinasihatkan untuk mempertimbangkan menggunakan penghurai HTML khusus.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadankan Aksara Baris Baharu dalam Regex Apabila Mengekstrak Kandungan daripada Tag HTML?. 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