選択的タグ付けのために HTML タグの外部と一致する正規表現
preg_replace を使用して HTML タグ内の特定の単語にタグを追加する際に、HTML タグ内で一致しないようにするにはHTML ページの場合、これらを除外する正規表現を定義することが重要です。
元のパターン:
preg_replace("/(asf|gfd|oyws)/", '<span>
弱点:
上記のパターンはターゲットのインスタンスにも一致しますHTML タグ内の単語、つまり望ましくない。
拡張パターン:
/(asf|foo|barr)(?=[^>]*(<|$))/
内訳:
仕組み:
このパターンは、ターゲットの単語と一致する場合にのみ一致します。の直後に HTML の閉じ山かっこが続かない。これにより、HTML タグの外側への一致が効果的に制限され、タグ内での意図しない変更が防止されます。
例:
次の HTML について考えてみましょう:
<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>
強化されたパターンを使用すると、ターゲット単語「yasar」が一致してタグ付けされますが、アンカータグの「alt」属性は変更されません:
<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
以上が正規表現を使用して、置換中に HTML タグ内のテキストの変更を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。