我正在尝试从字符串中删除以下标记。
[caption id="attachment_9" align="alignleft" width="137" caption="test"][/caption]
如何使用php的preg_replace删除它?
我尝试了几个正则表达式,但都失败了。
答案 0 :(得分:4)
$output_string = preg_replace('#\[caption[^\]]*\](.*?)\[/caption\]#m', "$1", $input_string)
或者如果您还要删除开始和结束标记之间的任何内容,只需将"$1"
更改为""
。
答案 1 :(得分:0)
你在这里:
在这里测试:http://www.pagecolumn.com/tool/pregtest.htm
<?php
$ptn = "/\[caption.+caption\]/";
$str = "Otherstuff[caption id=\"attachment_9\" align=\"alignleft\" width=\"137\" caption=\"test\"][/caption]Something else";
$rpltxt = "@";
echo preg_replace($ptn, $rpltxt, $str);
?>