我从Wordpress转换了一个网站,我的一些帖子有一个标题标签如下:
[caption id="attachment_666" align="alignleft" width="316"]
<img class="wp-image-92692" src="img" width="316" alt="fitbit-yoga-lady.png" height="210">
text
[/caption]
我想抓住所有这些字幕并将其转换为以下
<div id="attachment_666" style="width: 326px" class="wp-caption alignleft">
<img class="wp-image-92692" src="img" alt="fitbit-yoga-lady.png" width="316" height="210">
<p class="caption">text</p>
</div>
答案 0 :(得分:2)
嗯,鉴于您提供的确切文本,以下内容应该有效。
搜索模式:
\[caption([^\]]+)align="([^"]+)"\s+width="(\d+)"\](\s*\<img[^>]+>)\s*(.*?)\s*\[\/caption\]
的更换:
<div\1style="width: \3px" class="wp-caption \2">\4
<p class="caption">\5</p>
</div>
请参阅demo。
根据输入变化的容忍程度,你可能需要从那里进行调整,但这至少应该让你开始。
以下是使用preg_replace
:
function convert_caption($content)
{
return preg_replace(
'/\[caption([^\]]+)align="([^"]+)"\s+width="(\d+)"\](\s*\<img[^>]+>)\s*(.*?)\s*\[\/caption\]/i',
'<div\1style="width: \3px" class="wp-caption \2">\4<p class="caption">\5</p></div>',
$content);
}
答案 1 :(得分:0)
我在手机上盲目地这样做,但我认为你可以使用以下两个正则表达式,一个用于开始标记,另一个用于结束:
查找:
\[caption([^\]])\]
更换:
<div$1>
查找:
\[/\caption\]
更换:
</div>