Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengekstrak Nilai href daripada Tag Menggunakan Ungkapan Biasa?

Bagaimana untuk Mengekstrak Nilai href daripada Tag Menggunakan Ungkapan Biasa?

Linda Hamilton
Linda Hamiltonasal
2025-01-10 06:19:40755semak imbas

How to Extract href Values from  Tags Using Regular Expressions?

Gunakan ungkapan biasa untuk mencari nilai 'href' pautan <a>

Mengekstrak pautan daripada HTML biasanya boleh dilakukan menggunakan corak mudah seperti "(?>.?)". Walau bagaimanapun, kaedah ini gagal apabila cuba mendapatkan atribut 'href' secara khusus.

Untuk menyelesaikan masalah ini, kita boleh menggunakan ungkapan biasa yang lebih tepat untuk mencari nilai 'href' dalam teg <a>. Berikut ialah corak yang sah:

<code><a\s+(?:[^>]*?\s+)?href=(["'])(.*?)</code>

Ungkapan biasa ini berfungsi seperti ini:

  • Cari teg <a> permulaan.
  • Pilihan sepadan dengan mana-mana atribut atau ruang kosong sebelum atribut 'href'.
  • Tangkap petikan permulaan (tunggal atau berganda).
  • Memadankan mana-mana aksara antara petikan dan menangkapnya sebagai satu kumpulan (ini termasuk URL yang dipautkan).
  • Pastikan petikan penutup sepadan dengan petikan pembukaan.

Menggunakan regex ini, anda boleh mengekstrak nilai 'href' daripada pautan seperti ini:

<code><a ....="" href="https://www.php.cn/link/3d7a8f67f51564c349478f7d52abee3b"></a>
<a ....="" href="http://https://www.php.cn/link/3d7a8f67f51564c349478f7d52abee3b"></a>
<a ....="" href="https://https://www.php.cn/link/3d7a8f67f51564c349478f7d52abee3b"></a></code>

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa regex ini juga akan sepadan dengan pautan yang tidak mengandungi aksara "?" dan "=" yang diperlukan. Jika ini adalah masalah, penapisan tambahan mungkin diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nilai href daripada Tag Menggunakan Ungkapan Biasa?. 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