2

我有一个搜索结果,我想标出字符串匹配的位置。

以前我是用 stripos 做的,只是保存了偏移量等,但是当我开始在包含 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 回答