PHP - 如果标签的内容以某些文本开头,则删除该标签的内容

时间:2015-11-19 18:23:11

标签: php regex

我有一个情况,请你帮我做一下。我有像 -

这样的字符串
Someother string \n\n or anything[img]data:image/png;base64,iVBORw0KGgoAAAAN........[/img]aaa

还有一些像这样 -

anything[img]http://imagepath.com/image.png[/img]aaa

我想删除[img]标记,如果它以data:image标记中的/ contains [img]开头。

正则表达式会很棒。

我试过了 -

preg_replace('#data:image/[^;]+;base64,#', '', $string);

但未提供预期结果。

1 个答案:

答案 0 :(得分:0)

$string = preg_replace('/\[img\]data:image.*?\[\/img\]/', '', $string);

简单的测试脚本:

<?php
$string = 'Stack [img]data:image/png;base64,iVBORw0KGgoAAAAN...[/img] Overflow';

$string = preg_replace('/\[img\]data:image.*?\[\/img\]/s', '', $string);

echo "$string\n";
?>

输出是:

Stack  Overflow