Я пытаюсь удалить следующий тег из строки.
[caption id="attachment_9" align="alignleft" width="137" caption="test"][/caption]
Как мне удалить его с помощью preg_replace в php?
Я пробовал несколько регулярных выражений, но не смог все.
$output_string = preg_replace('#\[caption[^\]]*\](.*?)\[/caption\]#m', "$1", $input_string)
или если вы также хотите удалить что-либо между открывающим и закрывающим тегом, просто измените "$1" на "".
"$1"
""
Вот вы:
Проверено здесь: 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); ?>