Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana Menggunakan Regex untuk Mengelakkan Mengubah Teks Di Dalam Tag HTML Semasa Penggantian?

Bagaimana Menggunakan Regex untuk Mengelakkan Mengubah Teks Di Dalam Tag HTML Semasa Penggantian?

Barbara Streisand
Lepaskan: 2024-12-01 22:54:11
asal
635 orang telah melayarinya

How to Use Regex to Avoid Modifying Text Inside HTML Tags During Replacement?

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>
Salin selepas log masuk

Kelemahan:

Corak di atas juga akan sepadan dengan contoh sasaran perkataan dalam teg HTML, yang tidak diingini.

Dipertingkat Corak:

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

Pecahan:

  • (asf|foo|barr): Padan dengan perkataan sasaran.
  • (?=): Penegasan ke hadapan yang memastikan perlawanan berlaku sebelum teg HTML penutup (
  • 1*: Memadankan sifar atau lebih aksara (tidak termasuk teg HTML penutup

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>
Salin selepas log masuk

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
Salin selepas log masuk

  1. >

    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!

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