私のサイトには、検索結果で検索クエリが強調表示される機能があります。ただし、サイトが検索した一部のフィールドにはHTMLが含まれています。たとえば、で構成される検索結果があったとし<span>Hello all</span>ます。ユーザーが文字を検索した場合、今返される厄介なコードではなくa、コードを返してほしい。<span>Hello <mark>a</mark>all</span><sp<mark>a</mark>n>Hello <mark>a</mark>ll</sp<mark>a</mark>n>
でネガティブルックビハインドとルックアヘッドを使用して、がaと。の間にあるpreg_replace()インスタンスを除外できることを知っています。しかし、どうすればそれを行うことができますか?正規表現は私の弱点の1つであり、その効果を思い付くことができないようです。a<>
これまでのところ、私が持っているのはこれです:
$return = preg_replace("/(?<!\<[a-z\s]+?)$match(?!\>[a-z\s]+?)/i", '<mark>'.$match.'</mark>', $result);
しかし、それは機能していないようです。何か助けはありますか?