HTML のブロックを解析し、特定の用語集に対して単語を照合するスクリプトを作成しようとしています。一致が見つかった場合は、用語をラップ<a class="tooltip"></a>
して定義を提供します。
2 つの大きな欠点を除いて、問題なく動作しています。
- 属性にあるテキストと一致します
<a>
ネストされたリンクを作成して、すでにタグに含まれているテキストと一致します。
<a>
正規表現を、属性にもタグにも含まれていない単語のみに一致させる方法はありますか?
関連する場合に備えて、私が使用しているコードは次のとおりです。
foreach(Glossary::map() as $term => $def) {
$search[] = "/\b($term)\b/i";
self::$lookup[strtoupper($term)] = $def;
}
return preg_replace_callback($search, array(&$this,'replace'),$this->content);