在PHP中使用正则表达式捕获时如何忽略字符串中的单词?

时间:2013-12-27 06:03:05

标签: php html regex url

以下是我的代码:

preg_replace("/(test)/i", "<strong>$1</strong>", $text);

这是一个示例字符串:

"<a href="www.website.com/search/%23test">#test</a>"

我想捕获第二个“测试”,但不是第一个“测试”。

1 个答案:

答案 0 :(得分:2)

你可以避免匹配尖括号内的东西(至少,如果文本中没有文字的尖括号),并带有负前瞻:

preg_replace("/test(?![^<>]*>)/i", "<strong>$0</strong>", $text);

regex101 demo