用preg_replace和正则表达式替换img标记

时间:2012-05-05 19:53:40

标签: php regex preg-replace preg-match

我不懂正则表达式。我需要更改以这种方式格式化的img标记:<img class="special-class" (then custom srcs and whatever) />。我认为preg_replace可以完成这项工作还是会有更有效的方法?

我只需要使用正则表达式方法来搜索第一个类的完整img标记,这样我就可以将其替换为保存为$ buzz的另一个字符串

2 个答案:

答案 0 :(得分:2)

匹配一个完整的img标记(有效的html,并且没有不带引号的>):

preg_match('#<img([^>]+)>#i', $html, $match);

不知道你还想要什么...

$match将包含[0]中的完整内容以及[1]中的属性(作为字符串)。

如果您想匹配class属性:

preg_match('#class="([^"])"#i', $html, $match);

修改
这可能有用:

preg_replace('#<img[^>]+class="[^"]*replace[^"]*"[^>]*>#', '', $html);

如果我输入:

<img src="oele" class="boele" />
<img src="boele" />
<img src class="replace boele">

它只替换了最后一个img,其余部分保持不变。

正则表达式规则!

答案 1 :(得分:0)

我会选择Javascript解决方案(想想jQuery)。如果您希望我能帮助您