• ベストアンサー

preg_replaceで連続した改行

preg_replaceで5回以上の連続した改行を1回の改行に直したいのですが、 正規表現はどのように書いたらいいのでしょうか? 書いてみたのですが、動いてくれません。。。 <? $str=preg_replace("/\n/{5,}","\n",$str); ?> 申し訳ありませんが、ご教授ください。

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

元データはどこから持ってきているのか解りませんけど 改行コードがwindows用の \r\n になっているとか、 mac用の \r だとか云うことはありませんか? postやgetで受け取ったデータだとその可能性大です。 4個までは、そのままとするなら、以下のようにしてみては? $str=preg_replace("/(\r\n){5,}|\r{5,}|\n{5,}/","\n",$str);

awazak
質問者

お礼

ありがとうございます! これで実現することができました!

その他の回答 (3)

回答No.4

パッドからコピーしたら、 ちょい化けしてた、 No2.訂正 $str=preg_replace('/\\n{5,}/', "\n", $str);

awazak
質問者

お礼

ありがとうございます! どうやら、\rになっていたようです! 無事、実現することができました!

回答No.2

ほいと、 $str=preg_replace('/\\\\n{5,}/', "\n", $str); とりあえず、改行が\nだと仮定した話だけどね

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

$str=preg_replace("/\n{5,}/","\n",$str); ではどうですか

awazak
質問者

補足

早速の回答ありがとうございます。 残念ですが動きません。

関連するQ&A