- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:preg_replaceでの正規表現による空行削除)
preg_replaceでの正規表現による空行削除
このQ&Aのポイント
- preg_replaceを使用して、正規表現を使って空行を削除する方法が分かりません。
- <p>タグ内のテキストのみを抜き出し、HTMLソース内の空行を削除する方法を教えてください。
- また、<p>タグではなくHTMLコメントタグを使用してテキストを抜き出す方法も教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
><!--ここから-->タグか文章<!--ここまで-->と表現する場合 わたしの理解力がないのか、どうしたいのかがイメージがわきません。 具体的に、どういう文書がどういう風になるかを例示してもらえれば 回答できるかもしれません。
その他の回答 (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); ?>
質問者
補足
ありがとうございます。パーフェクトです。 確かに<p>と同じですが、同じ<p>タグがファイル内にあるので、指定した範囲だけ削除したかったのです。 もう少し、勉強します。また、ありましたらよろしくです。
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
たんに改行にCR+LFをつかっているのでは? echo preg_replace('!<p>.*?</p>[\r\n]*!i', '', $contents);
質問者
補足
ビンゴでした。 ちなみに、<p>ではなくHTMLコメントタグとして <!--ここから-->タグか文章<!--ここまで-->と表現する場合も教えて下さい。
補足
$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-->の範囲を除去する正規表現方法なのですが、説明が悪くてすいませんが、お願いします。