Regex untuk Dipadankan di Luar Teg HTML untuk Teg Terpilih
Untuk mengelakkan padanan dalam teg HTML semasa menggunakan preg_replace untuk menambah teg pada perkataan tertentu dalam halaman HTML, adalah penting untuk menentukan ungkapan biasa yang mengecualikan ini kawasan.
Corak Asal:
preg_replace("/(asf|gfd|oyws)/", '<span>
Kelemahan:
Corak di atas juga akan sepadan dengan contoh sasaran perkataan dalam teg HTML, yang tidak diingini.
Dipertingkat Corak:
/(asf|foo|barr)(?=[^>]*(<|$))/
Pecahan:
Bagaimana ia Berfungsi:
Corak ini sepadan dengan perkataan sasaran hanya jika ia tidak diikuti dengan segera oleh kurungan sudut HTML penutup. Ia secara berkesan mengehadkan pemadanan ke luar teg HTML, menghalang pengubahsuaian yang tidak disengajakan di dalamnya.
Contoh:
Pertimbangkan HTML berikut:
<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. For example, when I try to replace this text:</p> <pre class="brush:php;toolbar:false"><a href="example.com" alt="yasar home page">yasar</a>
Menggunakan corak yang dipertingkatkan, perkataan sasaran "yasar" akan dipadankan dan ditandakan, manakala contoh dalam Atribut "alt" bagi teg sauh akan dibiarkan tanpa disentuh:
<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. For example, when I try to replace this text:</p> <pre class="brush:php;toolbar:false"><a href="example.com" alt="yasar home page">yasar</a>So that yasar reads
Atas ialah kandungan terperinci Bagaimana Menggunakan Regex untuk Mengelakkan Mengubah Teks Di Dalam Tag HTML Semasa Penggantian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!