次の解決策を提案してください。
たとえば、「サスペンディスポテンティ」というテキストの文字列があります。
文字列の html を検索し、span タグでラップする必要があります。
となることによって
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
scelerisque neque in eros convallis egestas. Phasellus lacus massa,
laoreet cursus scelerisque id, posuere ac mauris. In hac habitasse
platea dictumst. Aenean eros dui, congue ut ultrices vitae, convallis
quis felis. Ut non ante non nunc tempus ultrices et et ipsum.
Suspendisse potenti. In sed mauris vel nibh dapibus
pellentesque eu id dolor. Morbi dictum quam eleifend ante mattis rutrum.
Mauris nisl ligula, consectetur eget gravida vel, varius vel metus.
Nullam a ante metus.</p>
になるだろう
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
scelerisque neque in eros convallis egestas. Phasellus lacus massa,
laoreet cursus scelerisque id, posuere ac mauris. In hac habitasse
platea dictumst. Aenean eros dui, congue ut ultrices vitae, convallis
quis felis. Ut non ante non nunc tempus ultrices et et ipsum.
<span class="search-match" id="search-term-0">Suspendisse potenti</span>.
In sed mauris vel nibh dapibus pellentesque eu id dolor. Morbi dictum
quam eleifend ante mattis rutrum. Mauris nisl ligula, consectetur eget
gravida vel, varius vel metus. Nullam a ante metus.</p>
私はこれを使用して作業しています:$text = preg_replace_callback( '/(' . preg_quote($searchTerm, '/') . '*)/', "Search::addSearchId", $text );
私が抱えている問題は、検索しているテキストの文字列の一部が html タグにある場合です。
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
scelerisque neque in eros convallis egestas. Phasellus lacus massa,
laoreet cursus scelerisque id, posuere ac mauris. In hac habitasse
platea dictumst. Aenean eros dui, congue ut ultrices vitae, convallis
quis felis. Ut non ante non nunc tempus ultrices et et ipsum.
Suspendisse <a href="/link">potenti</a>. In sed mauris vel nibh dapibus
pellentesque eu id dolor. Morbi dictum quam eleifend ante mattis rutrum.
Mauris nisl ligula, consectetur eget gravida vel, varius vel metus.
Nullam a ante metus.</p>
またはタグ内の検索用語と追加テキスト
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
scelerisque neque in eros convallis egestas. Phasellus lacus massa,
laoreet cursus scelerisque id, posuere ac mauris. In hac habitasse
platea dictumst. Aenean eros dui, congue ut ultrices vitae, convallis
quis felis. Ut non ante non nunc tempus ultrices et et ipsum.
Suspendisse <a href="/link">potenti In sed</a> mauris vel nibh dapibus
pellentesque eu id dolor. Morbi dictum quam eleifend ante mattis rutrum.
Mauris nisl ligula, consectetur eget gravida vel, varius vel metus.
Nullam a ante metus.</p>
これは、タグのない単純な文字列だけを検索しているため、明らかにテキストを見逃しています。
プレーン文字列だけでなく、html を含む文字列にも一致する便利な正規表現を持っている人はいますか?
これは、検索ページから参照された後、ページの上部にいくつかのアンカーを作成することです。検索語を強調表示したいので、文字列全体をラップする必要があります。