• ベストアンサー

正規表現で改行が3個続いてたら、それを削除する書き

検索とか置換えで、正規表現で、改行が3回続いていたら、それを削除する書き方ってあるでしょうか? 試して見てるのですが、改行が全部消えてしまい、うまく思い通りにいきません。 検索:^\n 置換: とかだと、改行が全部なくなってしまいます。 ^\n\n\n$ だと、ヒットしません。 改行が続いていて、それを3行だけ取り除くなんていうのは、できないもんでしょうか。 文章の中にあります。 行頭に半角空白,改行と続くのもありますが、それはヒットしないように。      

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

  • ベストアンサー
  • ude_T
  • ベストアンサー率41% (15/36)
回答No.1

検索文字列 \n\n\n(.+?)\n 置換文字列 \1\n 検索文字列の()の中身の値を置換文字列の\1で参照する必要があります こちらでは動作確認できましたが、正規表現はエンジンみたいなものがあってそれによって 微妙に違うので質問者様が使用しているものでうまく動くかわかりません 上記のような値を保持することを後方参照とよびますので、うまく動かなかったら 調べてみるなりまたここで質問してもらうなりしてもらえればと思います (\1でなくて$1でするとうまくいくかもしれません)

orenzi1
質問者

補足

ありがとうございます。 思い通りに削除されました! まことにありがとうございました!

その他の回答 (1)

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.2

これならばどうでしょう。 検索文字列(正規表現) 「(\n)\1\1」 置換文字列 「」(無し) ( ) で登録した文字列をすぐ次の \1 で使うので、(any)\1\1 は、any が三つ繋がっているもの、という表現になります。 ちなみに ^\n\n\n$ がヒットしないのは、「^」が行の頭で、「$」が行の終わりを表す、すなわち、改行\nを除いた中身に対して働くからでしょうね。 行というのはそもそも\nで区切られているわけですから、自己矛盾した正規表現になってしまって解釈不可能なんだろうと思います。

orenzi1
質問者

補足

ありがとうございます。なるほど解釈がなかなか難しいものですね。 紙コピーのソフトの中で作業しているのですが、 ヒットしませんでした、、、むずかしいですね。。。 秀丸エディタでもヒットしませんでした。

関連するQ&A