Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Mengubah Suai Teks Dalam Teg HTML Tanpa Menjejaskan Teg Itu Sendiri?

Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Mengubah Suai Teks Dalam Teg HTML Tanpa Menjejaskan Teg Itu Sendiri?

Patricia Arquette
Lepaskan: 2024-11-28 21:20:12
asal
324 orang telah melayarinya

How Can I Use Regular Expressions to Modify Text Within HTML Tags Without Affecting the Tags Themselves?

Elakkan Gangguan Tag HTML dengan Ungkapan Biasa

Apabila menggunakan ungkapan biasa untuk memproses halaman HTML, adalah penting untuk mengelakkan pengubahsuaian yang tidak diingini pada teg HTML . Cabaran biasa timbul apabila cuba mengubah suai teks dalam teg, tetapi ungkapan biasa juga mempengaruhi teg itu sendiri.

Pertimbangkan contoh yang dinyatakan di mana penggantian teks mudah dikehendaki dalam teg HTML tertentu:

<a href="example.com" alt="yasar home page">yasar</a>
Salin selepas log masuk

Untuk menyerlahkan perkataan "yasar" dengan kelas tertentu, ungkapan biasa berikut ialah used:

preg_replace("/(asf|gfd|oyws)/", '<span>
Salin selepas log masuk

Walau bagaimanapun, ungkapan ini secara tidak dijangka turut menggantikan "yasar" dalam atribut "alt", mengubah suai teg HTML.

Penyelesaian Menggunakan Penegasan

Untuk mengelakkan isu ini, penegasan boleh digunakan untuk memastikan corak hanya sepadan dengan teks di luar teg HTML. Penegasan ialah ungkapan lebar sifar yang menguji keadaan tertentu tanpa menggunakan sebarang aksara.

Satu pendekatan ialah menggunakan pernyataan pandangan negatif untuk memastikan teks yang dipadankan tidak diikuti dengan segera oleh "<" watak:

/(asf|foo|barr)(?=[^>]*(<|$))/
Salin selepas log masuk

Ungkapan ini memastikan bahawa perkataan yang dipadankan tidak muncul dalam teg HTML dengan menyemak bahawa ia diikuti oleh sebarang nombor bukan-"<" aksara (.[^>]*) dan kemudian sama ada kurungan sudut pembukaan < atau hujung rentetan $.

Sebagai alternatif, penegasan lihat di belakang boleh digunakan untuk menguji bahawa teks yang dipadankan tidak didahului oleh ">" watak:

(?<=>)(asf|foo|barr)
Salin selepas log masuk

Ungkapan ini menyemak bahawa perkataan yang dipadankan didahului oleh kurungan sudut pembukaan, tidak termasuk semua teks dalam teg HTML.

Dengan memasukkan pernyataan ini ke dalam ungkapan biasa anda, anda boleh memastikan bahawa padanan corak berlaku secara eksklusif di luar teg HTML, menghalang pengubahsuaian yang tidak diingini pada struktur HTML.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Mengubah Suai Teks Dalam Teg HTML Tanpa Menjejaskan Teg Itu Sendiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan