ホームページ  >  記事  >  バックエンド開発  >  PHP正規表現を使用してアンカータグの外側のキーワードを照合するにはどうすればよいですか?

PHP正規表現を使用してアンカータグの外側のキーワードを照合するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-20 13:29:02355ブラウズ

How to Match Keywords Outside of Anchor Tags Using PHP Regex?

PHP 正規表現を使用した HTML アンカー タグ () の外側のキーワードの一致

Web 開発では、次のような状況が発生する可能性があります。ハイパーリンクなどの特定の領域を避けながら、HTML コンテンツ内のキーワードを照合して置換する必要があります。これは、PHP 正規表現を使用して実現できます。

問題ステートメント:

当面のタスクは、キーワード「keyword」に一致するが除外される正規表現パターンを見つけることです。アンカー タグ (キーワード) で囲まれたインスタンス。

解決策:

この問題に効果的に対処するには、次の PHP 正規表現を使用します。使用:

<code class="php">$str = preg_replace('~Moses(?!(?>[^<]*(?:<(?!/?a\b)[^<]*)*)</a>)~i',
                    '<a href="novo-mega-link.php"></a>', $str);</code>

説明:

  • Moses: この部分は単にキーワード「Moses」と一致します。
  • (?!: これは、否定先読みアサーションの始まりを示します。
  • (?>[^<]*(?:<(?!/ ?ab)[^<]*)*): この部分は、アンカー タグを開始していない任意の数の非 HTML タグ文字またはネストされたタグを識別するための再帰的パターンを作成します。
  • : 終了アンカー タグと一致します。
  • ): この括弧は、否定先読みアサーションを閉じます。
  • ~i: 大文字と小文字を区別しない修飾子により、パターンは大文字と小文字の両方の「Moses」に機能します。

動作原理:

初期の正規表現「モーセ」と一致します。ただし、次の条件が満たされる場合は、一致は実行されません。

  • キーワードの後に​​は、一連の非 HTML 文字が続く必要があります。
  • キーワードは、
  • キーワードの後に​​は有効な終了アンカー タグが続く必要があります。

これらの条件がすべて満たされる場合、パターンはキーワードと一致しません。そのため、交換対象外とさせていただきます。

以上がPHP正規表現を使用してアンカータグの外側のキーワードを照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。