我有一个searchresult,我想标出字符串匹配的位置。
以前我用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紧挨着&lt; OFC。但添加一个懒惰的匹配,如。*?也不起作用。
帮助! :)
答案 0 :(得分:1)
如果您只是在简单的HTML标记内查找,那么这样的事情应该没有工作:
preg_replace("/((^|>)[^<]+?)(your-string)/", "$1<span>$3</span>", $your_string);