Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengalih Keluar Semua Teg HTML daripada Rentetan dengan Cekap?

Bagaimanakah Saya Boleh Mengalih Keluar Semua Teg HTML daripada Rentetan dengan Cekap?

DDD
DDDasal
2025-01-05 11:53:41719semak imbas

How Can I Remove All HTML Tags from a String Efficiently?

Melucutkan HTML daripada Rentetan tanpa Menentukan Teg

Soalan:

Bagaimanakah saya boleh menghapuskan semua tag HTML daripada rentetan dengan mudah , tanpa mengira teg tertentu terlibat?

Contoh:

Pertimbangkan rentetan kaya HTML berikut:

string title = "<b>Hulk Hogan's Celebrity Championship Wrestling     <font color=\"#228b22\">[Proj # 206010]</font></b>     (Reality Series,)

Sebaik-baiknya, kami mahu outputnya menjadi:

"Hulk Hogan's Celebrity Championship Wrestling [Proj # 206010] (Reality Series)"

Penyelesaian:

Pendekatan Regex:

Satu penyelesaian yang cekap menggunakan ungkapan biasa:

public static string StripHTML(string input)
{
   return Regex.Replace(input, "<.*?>", String.Empty);
}

Reteks ini sepadan dengan mana-mana rentetan yang disertakan dalam kurungan sudut (< dan >) dan menggantikannya dengan rentetan kosong.

HTML Agility Pack:

Sebagai alternatif, anda boleh memanfaatkan perpustakaan HTML Agility Pack:

HTMLDocument doc = new HTMLDocument();
doc.LoadHtml(input);
string stripped = doc.DocumentNode.InnerText;

Kaedah ini menghuraikan rentetan HTML dan hanya mengembalikan kandungan teks, tidak termasuk semua teg dan atribut.

Kaveat:

Walaupun kaedah ini berkesan mengalih keluar teg HTML, ia mempunyai had:

  • Pendekatan regex boleh terlepas beberapa kompleks Struktur HTML.
  • Pek Ketangkasan HTML boleh menjadi lebih perlahan untuk HTML yang besar dokumen.

Adalah penting untuk memilih penyelesaian yang sesuai berdasarkan keperluan khusus anda dan pertukaran.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Semua Teg HTML daripada Rentetan dengan Cekap?. 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