Menggunakan Ungkapan Biasa untuk Mengekstrak Nilai href daripada Pautan HTML
Walaupun penghurai HTML khusus biasanya disyorkan untuk penghuraian HTML yang mantap, pendekatan ungkapan biasa boleh digunakan untuk senario yang lebih mudah. Penyelesaian ini mengekstrak nilai href
, mengendalikan petikan tunggal dan berganda:
<code><a\s+(?:[^>]*?\s+)?href=("|')(.+?)</code>
Penjelasan:
<as
: Padan dengan teg <a>
pembukaan diikuti dengan ruang kosong pilihan.(?:[^>]*?s )?
: Padanan secara pilihan dengan mana-mana atribut dan ruang putih lain sebelum href
. ?:
menjadikan kumpulan ini sebagai kumpulan yang tidak menangkap.href=("|')
: Padan dengan atribut href
diikuti sama ada petikan tunggal atau berganda. Petikan itu ditangkap dalam kumpulan 1.(. ?)
: Menangkap nilai href
itu sendiri (kumpulan 2).1
: Padan dengan petikan penutup (sama seperti petikan pembukaan yang ditangkap dalam kumpulan 1).Pertimbangan Penting:
regex ini bukan penghurai HTML penuh. Ia akan gagal pada HTML yang cacat atau kompleks. Ia paling sesuai untuk coretan HTML yang telah dipraproses dan dipermudahkan. Contohnya, gunakannya pada senarai atribut href
yang diekstrak seperti ini: href="mylink.com"
Penapisan untuk Jenis Pautan Tertentu:
Untuk menapis pautan yang mengandungi kedua-dua tanda soal (?
) dan tanda sama (=
), gunakan regex yang diperhalusi ini:
<code>href=(.*?)\?(.*?)=(.*?)</code>
Ini memastikan bahawa hanya pautan dengan ciri yang ditentukan dipilih. Ingat, struktur HTML yang kompleks memerlukan penghurai HTML khusus untuk hasil yang boleh dipercayai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nilai href daripada Pautan HTML Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!