Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menggunakan PHP Regex untuk Mengelakkan Mengubah Suai Teg HTML Semasa Penggantian Teks?

Bagaimanakah Saya Boleh Menggunakan PHP Regex untuk Mengelakkan Mengubah Suai Teg HTML Semasa Penggantian Teks?

Barbara Streisand
Lepaskan: 2024-12-04 09:41:10
asal
526 orang telah melayarinya

How Can I Use PHP Regex to Avoid Modifying HTML Tags During Text Replacement?

PHP Regex untuk Mengecualikan Padanan Dalam Teg HTML

Apabila melakukan penggantian teks menggunakan preg_replace dalam dokumen HTML, adalah penting untuk mengelak daripada mengubah suai teg HTML secara tidak sengaja. Sebagai contoh, pertimbangkan tugas membungkus perkataan tertentu dalam teg:

<p>I am making a preg_replace on html page. My pattern is aimed to add surrounding tag to some words in html. However, sometimes my regular expression modifies html tags...</p>
Salin selepas log masuk

Reeks reg berikut cuba menggantikan "yasar" dengan teg:

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

Malangnya, regex ini juga sepadan dengan "yasar" dalam atribut alt tag anchor, mengakibatkan perubahan yang tidak diingini.

Menggunakan Penegasan untuk Mengecualikan Padanan Dalam Teg

Untuk mengelakkan perlawanan yang tidak diingini sedemikian, penegasan boleh digunakan. Dengan menegaskan bahawa perkataan yang sedang dicari (iaitu, "asf," "gfd," atau "oyws") tidak muncul sebelum "<" atau selepas ">," kami boleh mengecualikan padanan dengan berkesan dalam teg HTML. Berikut ialah regex yang diubah suai yang menggunakan pendekatan ini:

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

Pernyataan pandang ke hadapan (?=[^>]*(<|$)) memastikan bahawa perkataan mesti diikuti oleh sama ada pembuka teg HTML ("<") atau hujung rentetan (diwakili oleh "$"). Ini secara berkesan mengecualikan padanan dalam teg.

Dengan memasukkan pernyataan ini ke dalam regex, kami boleh melakukan penggantian tanpa mengubah suai teg HTML, memastikan yasar dalam atribut alt kekal tidak disentuh:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan PHP Regex untuk Mengelakkan Mengubah Suai Teg HTML Semasa Penggantian Teks?. 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