正则表达式中未包含锚标记的内容

时间:2012-07-02 00:34:41

标签: php regex anchor

我想在字符串上运行preg_replace PHP函数,但我需要它来忽略锚标记内的任何内容。

例如。

string = 'alpha beta delta gamma <a href="somelink.html">alpha beta delta gamma</a>'
to match = 'beta delta'

我如何才能获得beta delta的第一个实例,而不是第二个实例?

1 个答案:

答案 0 :(得分:1)

您可以对结束标记进行否定预测:

preg_replace("/$to_match(?![^<]*<\/)/", 'foo', $string);

另外,你不应该在html上使用正则表达式。