私はここで多くの質問(およびさらに多くのウェブサイト)を見て、いくつかはヒントを提供しましたが、どれも私に決定的な答えを与えませんでした。私は正規表現を知っていますが、教祖にはほど遠いです。この特定の質問は、PHPの正規表現を扱います。
特定のクラスのハイパーリンクで囲まれていないテキスト内の単語を見つける必要があります。たとえば、私は持っているかもしれません
This <a href="blabblah" class="no_check">elephant</a> is green and this elephant is blue while this <a href="blahblah">elephant</a> is red.
2番目と3番目の象と照合する必要がありますが、最初の象とは照合する必要はありません(テストクラス「no_check」で識別されます)。ハイパーリンク内には、hrefやclass以外の属性が存在する可能性があることに注意してください。私は思いついた
((?<!<a .*class="no_check".*>)\belephant\b)
これは正規表現テストソフトウェアでは美しく機能しますが、PHPでは機能しません。
どんな助けでも大歓迎です。正規表現を提供できないが、その必要性を回避するようなPHPコードロジックを見つけることができれば、私も同様に感謝します。