php正则表达式帮助,删除以[caption id =开头]开头的字符串

时间:2017-02-27 09:45:20

标签: php regex

需要正则表达式的帮助。我有一大串HTML,需要删除像这样的标签

[caption id="attachment_24612" align="alignnone" width="900"]

每个代码都会启动相同的[caption id=,并结束相同的] ...但每次中间的内容都是唯一的。正则表达式代码看起来应该是这样的,但我不知道如何模式匹配中间

$sourceHTML = preg_replace(array("[caption id=", ""),"", $sourceHTML);

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

要删除这些标题标记,您可以使用此正则表达式:

attribute

See the demo

如果你的代码是单行的,并且你想删除前一个正则表达式可以留下的空白行,请考虑使用这个:

\[caption[^]]+]

\[caption[^]]+]\R? 部分会在标记后面匹配可能的换行符。

See the demo

示例

\R?

答案 1 :(得分:0)

请改用:

$sourceHTML = preg_replace("/\[caption id=(.*?)\]/", "", $sourceHTML);