正则表达式查找并附加除第一个之外的每个<img/>标记

时间:2015-05-28 00:32:04

标签: php html regex

在PHP中,我有一大堆HTML,我试图找出如何查找和附加每个图像标记,除了第一个带有跨度的图像标记。下面的代码有效,但它附加了所有img标签。我需要它来忽略img的第一个实例:

$html = preg_replace("#(<img.*?>)#", "$1<span class=\"blah\">blah</span>", $html);

2 个答案:

答案 0 :(得分:1)

尝试preg_replace_callback

for _, route := range routes {
    router.Methods(route.Method).Path(route.Pattern).Handler(route.Handler)
}

我们的想法是使用check变量来跳过$str = "<img><img><img><img>"; $str = preg_replace_callback('/<img[^>]*>/', function ($m) use (&$rcheck){ return (!isset($rcheck) && $rcheck=true) ? $m[0] : $m[0]."<span>"; }, $str); echo $str; Try it at eval.in

<img>

答案 1 :(得分:0)

您可以使用否定前瞻:

(?!^)(<img.*?>)

regex101.com example