1
私は、いくつかの<img>
要素を含むさまざまな種類のhtmlタグとstuffを含む文字列を持っています。私はタグの中にそれらの<img>
要素をラップしようとしています。しかし<img>
タグが隣接<figcaption>
タグを持っている場合、結果はかなり醜いです、そしてフィギュア要素の浮遊終了タグを生成preg_replace stre endタグを削除するregex
preg_replace('/(<img.*?>)/s','<figure>$1</figure>',$content);
:
このようにpreg_replaceを使用してこれまでのところは良いです<figure id="attachment_9615">
<img class="size-full" src="http://www.example.com/pic.png" alt="name" width="1699" height="354" />
<figcaption class="caption-text"></figure>Caption title here</figcaption>
</figure>
図の中にimg-tagとfigcaption-tagの両方を囲むように、preg_replace正規表現のバリエーションをたくさん試しましたが、動作させるように見えません。
私の最新の試み:他の人が指摘したように
preg_replace('/(<img.*?>)(<figcaption .*>*.<\/figcaption>)?/s',
'<figure">$1$2</figure>',
$content);
[なぜ、オハイオ州なぜ正規表現と、それは決して停止しない...](HTTP:
がすべてあなたのイメージの周り<figure>
タグを持っているために、あなたはelse
ブランチを追加したい場合があります://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) – trincotこのタスクにRegExを使用することをお勧めしますか?あなたはDOMパーサーを考えましたか? –
@RocketHazmatまあ、確か。あなたがWordPressでこれを行うための別の方法を知っているならば、FBインスタントアーティクルのRSSフィード出力をクリーンアップする目的で。おそらく、いくつかのWordpressコンテンツフィルタを削除して、それらのすべてをやり直すことはできますが、正規表現ではないでしょう...簡単ですか? –