• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:preg_replaceでの正規表現による空行削除)

preg_replaceでの正規表現による空行削除

このQ&Aのポイント
  • preg_replaceを使用して、正規表現を使って空行を削除する方法が分かりません。
  • <p>タグ内のテキストのみを抜き出し、HTMLソース内の空行を削除する方法を教えてください。
  • また、<p>タグではなくHTMLコメントタグを使用してテキストを抜き出す方法も教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

><!--ここから-->タグか文章<!--ここまで-->と表現する場合 わたしの理解力がないのか、どうしたいのかがイメージがわきません。 具体的に、どういう文書がどういう風になるかを例示してもらえれば 回答できるかもしれません。

midorin_h
質問者

補足

$contents = <<<_HTML_ <div>DIVエリア/NO.1 <h1>1行目のH1タグ</h1> <h2>2行目のH2タグ</h2> <h3>3行目のH3タグ</h3> <p>4行目Pタグ</p> <p>5行目Pタグ</p> <p>6行目Pタグ</p> <!--DEL--><p>7行目Pタグ</p><!--/DEL--> _HTML_; こんな感じでコメントタグで<!--DEL-->~<!--/DEL-->の範囲を除去する正規表現方法なのですが、説明が悪くてすいませんが、お願いします。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

なるほど・・・それって<p>と同じような気がしますが、 なにか別の意図があるのでしょうか? <? $contents = <<<_HTML_ <div>DIVエリア/NO.1 <h1>1行目のH1タグ</h1> <h2>2行目のH2タグ</h2> <h3>3行目のH3タグ</h3> <p>4行目Pタグ</p> <p>5行目Pタグ</p> <p>6行目Pタグ</p> <!--DEL--><p>7行目Pタグ</p><!--/DEL--> _HTML_; echo preg_replace('/<!--DEL-->.*?<!--\/DEL-->[\r\n]*/i','', $contents); ?>

midorin_h
質問者

補足

ありがとうございます。パーフェクトです。 確かに<p>と同じですが、同じ<p>タグがファイル内にあるので、指定した範囲だけ削除したかったのです。 もう少し、勉強します。また、ありましたらよろしくです。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たんに改行にCR+LFをつかっているのでは? echo preg_replace('!<p>.*?</p>[\r\n]*!i', '', $contents);

midorin_h
質問者

補足

ビンゴでした。 ちなみに、<p>ではなくHTMLコメントタグとして <!--ここから-->タグか文章<!--ここまで-->と表現する場合も教えて下さい。

関連するQ&A