查找字符串是否在html括号内

时间:2012-07-30 08:10:34

标签: php regex preg-replace

我有一个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。但添加一个懒惰的匹配,如。*?也不起作用。

帮助! :)

1 个答案:

答案 0 :(得分:1)

如果您只是在简单的HTML标记内查找,那么这样的事情应该没有工作:

preg_replace("/((^|>)[^<]+?)(your-string)/", "$1<span>$3</span>", $your_string);