#どういう時にこの方法を使用したのか
既存のWebページからヘッダーとフッター以外のメインコンテンツ部分をごっそり抜き出して、
タグを正規表現で置換処理をしてから新しくhtmlを書き出す、という作業を行う際に、
タグ(要素)をまるごと('<div class="aaa">~~~</div>'の範囲)置換したいというときに使いました。
#正規表現&置換
※$textDataにはスクレイピングで取得した要素が入っているという想定です
html_change.php
$textData = '
<p class="AAA">
たとえば<br />
こんな感じに<br />
複数行にわたる要素まるごと<br />
取得できるので<br />
別の要素を入れたりできてすごい便利<br />
というかもっと早く知りたかった。
</p>
';
$textData = preg_replace('/<p class="AAA">[\s\S]*?<\/p>/', '<div class="CCC">$0</div>'."\n", $textData);
//$0にはクラスの中の文(<p class="AAA">~</p>)が入る
//ちなみに閉じタグ部分の/は上記みたいなエスケープが必要
echo $textData;
★実行結果
html_change.php
<div class="CCC">
<p class="AAA">
たとえば<br />
こんな感じに<br />
複数行にわたる要素まるごと<br />
取得できるので<br />
別の要素を入れたりできてすごい便利<br />
というかもっと早く知りたかった。
</p>
</div>
これで要素を追加したり削除したり別の要素に置換できたりします。
よかったよかった
#正規表現チェッカーでの実行結果
scraping.html
<p class="AAA">
たとえば<br />
こんな感じに<br />
複数行にわたる要素まるごと<br />
取得できるので<br />
別の要素を入れたりできてすごい便利<br />
というかもっと早く知りたかった。
</p>
#参考サイト