2

検索結果があり、文字列が一致する場所をマークしたいと考えています。

以前はストリップでそれを行い、オフセットなどを保存しましたが、html を含む文字列を検索し始めたときにめちゃくちゃになりました。

そのため、テキスト (HTML を含む場合があります) でマークしたい単語のリストを作成します。

だから、「html」構文ではないテキスト内の単語を見つけたいと思います。たとえば、探している文字列は「b」です。

A b<abc>c

に変換する必要があります

A <font style="color:red;">b</font><abc>c

ではない:

A <font style="color:red;">b</font><a<font style="color:red;">b</font>c>c

問題は、その正規表現を作成できないことです。私の最善の試みは次のとおりです。

preg_replace('/(?<!<)(b)(?!>)/', '<font style="color:red;">$1</font>', 'How will this be?<abncds>Now?<br>');

しかし、それは b が a < ofc の隣にある場合にのみキャッチされます。しかし、.*? などの遅延一致を追加すると、どちらも機能しません。

ヘルプ!:)

4

1 に答える 1

1

単純な HTML タグ内のみを見ている場合、次のようなものは役に立ちません。

preg_replace("/((^|>)[^<]+?)(your-string)/", "$1<span>$3</span>", $your_string);
于 2012-07-30T08:23:03.793 に答える