正则表达式(正则表达式)函数找到图形,figcaption和img然后替换

时间:2014-05-12 00:37:48

标签: php regex html-parsing

我在这方面一直在努力,因为当谈到正则表达时,我已经离开了我的舒适区。我已经创建了一个简单的正则表达式preg_replce函数(对于WP,但这个问题更具有PHP特性),用于查找具有特定类的img。

我现在需要更进一步,找到一个更大的html字符串,包括图形,figcaption和img,从子模式中捕获信息,而不是输出preg_replace中的信息以及其他HTML。

我现有的img preg_replace会查找此img信息

/<img ([^>]*)class="(.*?)size-large-16x9(.*?)" \/>\s*/iU
然后我用这个

替换它
</div></div></div><img class="$3" <div class="tab_4 desk_b_6 desk_a_8 margin_auto single_block"><div class="padding_block content_styles">

当我试图扩展它以寻找数字和figcaption值时,我没有运气。这是我的内容中的图形类型,img和figcaption。

<figure class="align_left inline_image medium" id="post-13569 media-13569">
<a class="fresco" href="xxx.xxx.xxx/wp-content/uploads/2014/04/bg-volunteers.jpg" data-fresco-group="single-group" data-fresco-group-options="ui:'inside'" data-fresco-caption="A caption is here about this image. It's pretty hefty.">
<img class="lazy lazy-hidden size-medium" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-type="image" data-lazy-src="http://xxx.xxx.xxx/wp-content/uploads/2014/04/bg-volunteers-410x269.jpg" />
</a><figcaption>A caption is here about this image. It&#8217;s pretty hefty.</figcaption>

这是预期的输出

</div></div></div>
<figure class="align_right inline_image medium-16x9"><a data-fresco-caption="A caption is here about this image. It's pretty hefty." data-fresco-group-options="ui:'inside'" data-fresco-group="single-group" href="http://xxx.xxxx.xx/wp-content/uploads/2014/04/bg-volunteers.jpg" class="fresco">
<img data-lazy-src="http://xxx.xxxx.xx/wp-content/uploads/2014/04/bg-volunteers-1080x607.jpg" data-lazy-type="image" src="http://xxx.xxxx.xx/wp-content/uploads/2014/04/bg-volunteers-1080x607.jpg" alt="" class="lazy size-medium-16x9 data-lazy-ready" style="display: inline;"><noscript>&lt;img class="size-medium-16x9" alt="" src="http://xxx.xxxx.xx/wp-content/uploads/2014/04/bg-volunteers-1080x607.jpg" /&gt;</noscript></a>
<figcaption>A caption is here about this image. It’s pretty hefty.</figcaption>
</figure><div class="tab_4 desk_b_6 desk_a_8 margin_auto single_block"><div class="padding_block content_styles">

任何具有正规表达能力的人都可以提供帮助吗?

打算将其形成一个函数,以允许大型图像在长篇阅读文章中拉出正常布局。

我似乎无法在下面提供这个问题的答案,但我可以确认我遵循了以下建议并使用了HTML解析器方法。它很容易实现,而且很干净。

结帐http://simplehtmldom.sourceforge.net/http://web-developer-thing.blogspot.com.au/2010/02/php-simple-html-dom-parser-makes.html

0 个答案:

没有答案