• ベストアンサー

3回以上の改行を2回にする正規表現は?

タイトルどおり3回以上改行が続けば、2回にまとめる正規表現を考えています。 処理系は秀丸を使っています。 [第1案] 検索:\n\n+ 置換:\n\n [第2案] 検索:\n{2,} 置換:\n\n の2つを考えたがいずれも失敗。 他の言語でも汎用的に使えるように正規表現を希望ですがマクロでも可。 秀丸に限らず他のソフトでの解もありますね。 かなり頻繁に使うので何とか自動化したいです。

  • fuk22
  • お礼率86% (26/30)

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

  • ベストアンサー
回答No.3

複数の空白行を1行にまとめるマクロです。 gofiletop; while (1) { searchdown "^\\n\\n", regular; if (!result) break; down; beginsel; while (code == '\r') { down; } delete; }

fuk22
質問者

お礼

ああ、これを待っていました。 このマクロなら特定文字がデータで使えなくなる事も無いしマクロを呼び出せば簡単に処理できます。 目的が達せたので締め切りたいと思います。 皆様ありがとうございました。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#1です $は正規表現では行末を意味していますね。すみません。@で試してみてください。 これは動作しました

fuk22
質問者

お礼

ああ、やっぱり$は一時的な記号だったんですね。 ただ、この方法だと$とか@が含まれるデータは誤動作の恐れがあるので変換前にチェックが必要では?と思いました。でも、手作業に比べれば楽ですね。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

秀丸ヘルプに下記記載があります >\n自体を任意の回数繰り返すような正規表現は、期待通りに動作しないことがあります。 >もし「$」で置き換え可能な場合にはなるべく「$」を使うようにしてください。 美しくない方法ですが 置換 \n → $    ${4,} → $$$    $ → \n とすれば、3行以上連続する空行を2行にできます。

fuk22
質問者

お礼

回答ありがとうございます。 なるほどhelpに書いてありました。すみません。 道理で幾ら探してもサンプル例が無いハズです。 対策として\nの代わりの文字として$を使い、ご指定の置換を3回行えば良いと解釈すれば良いでしょうか? \n→$は出来ましたが、${4,}→$$$でエラーが出るようですが、何か間違ってますか? 手作業で成功すればマクロ化できそうです。 解決の手掛かりを頂いた気がします。ありがとうございます。 なお、引き続き出来れば一遍で処理できる方法をお待ちしております。

関連するQ&A

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

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

  • 改行を含む正規表現について

    すみません。どこのカテゴリで質問してよいのか判らなかったのですが 正規表現で改行を含むパターンはどの様に検索/置換すればよろしいのでしょうか? 例えば はじめ ↓ ↓ ↓ おわり はじめ ↓ おわり はじめ ↓ ↓ ↓ おわり の様に はじめからおわりまでをの複数の行数を含む パターンを検索するにはどう表記すればよいのでしょか ちなみに秀丸では はじめ(\n.*)*おわり では検索できませんでした。 ご存知の方 手ほどきの程よろしくお願いします。

  • 正規表現について教えてください。

    Perlとは関係ないのですが、正規表現での置換ができるエディタで改行二つを一つにしたいです。 置換前 \n\n 置換後\n としてみたのですがうまくいきません。まちがってたら教えてください。 CRLFとか気にしないといけないのかな。

    • ベストアンサー
    • Perl
  • テキストエディタでの置換(正規表現チェック済)と同様のことを

    テキストエディタでの置換(正規表現チェック済)と同様のことを エクセルのマクロでもしたい。 画像を添付しましたが、秀丸で置換を選択し、 検索文字列と置換文字列を入れて、正規表現チェックのチェックボックスを 選択した状態で実行するのと同様のことをエクセルのマクロで行いたいです。 正規表現混みだととても難しいです。 やりたいことはマクロで、フォルダ内のテキストファイルを置換をかけていきたいです。(テキストファイルは複数ある状態)そのテキストファイルを更新できればいいです。(別テキストで出力されてもいいです。) どなたか詳しい方、教えていただけませんでしょうか? よろしくお願いいたします。 --- 検索エディタ【秀丸】【置換】 検索【.*item1=(.*) item2=(.*) .*】 置換【\1\t\2】 正規表現チェック

  • 秀丸での正規表現を使用した置換

    いつもお世話になっております。 秀丸で正規表現を使用した置換処理を行いたいと思うのですが、どうしても正規表現の式が書けません。 どうかご教示下さい。 <置換前> ABC1 あAbCd++ ... ... ・先頭4文字は半角英数字の大文字固定 ・その後ろにタブ ・最後にかな、英数字、記号などの可変長の文字列 上記で1レコードです。 <置換後> ABC1 String 内容 あAbCd++ ... ... ・先頭4文字そのまま ・その後ろにタブを3つ+改行 ・続いて「内容」という文字列+改行 ・最後に可変長の文字列をそのまま+改行 「置換」の正規表現は以下だと思うのですが、英数字4文字と可変長文字列を別々にマッチさせる「検索」がどうしても分かりません。 \0 String\n内容\n\1\n どうかご教示下さい。 <環境> Ver.6.1.4

  • 秀丸の正規表現について

    秀丸の正規表現で困っています。 改行ありのタグを抜かして改行のないタグだけを検索して置換したいのです。 <メール><ブログ>hogehogeなんちゃら</ブログ></メール> ↓ <教えて><goo>hogehogeなんちゃら</goo></教えて> は 検索:<メール><ブログ>(.+?)</ブログ></メール> 置換:<教えて><goo>$1</goo></教えて> で 置換できますよね。 でわ、 <メール><ブログ>hogehogeなんちゃら</ブログ></メール> <メール><ブログ> fumfumuなんちゃら fumfumuなんちゃら</ブログ></メール> ↓ <教えて><goo>hogehogeなんちゃら</goo></教えて> <メール><ブログ> fumfumuなんちゃら fumfumuなんちゃら</ブログ></メール> とhogehogeなんちゃらのタグだけ変えるには 検索と置換をどうしたらよいのでしょうか? 検索だけなら 検索:<メール><ブログ>[^\n]+</ブログ></メール> でできるようですが、置換もするとなると どのように検索と置換をすればよいのでしょうか?

  • 正規表現による改行の置換

    Windowsで正規表現ができるテキストエディタ(NoEditer)を使っており、次のような改行で区切られた文を最後のピリオッドまでをつなげたいと思っています。例文ではX,Y,Z.の直後には改行が入っており、目的はAaaaXBbbbYCcccZ.と一文につなげることです。 [例文] AaaaX BbbbY CcccZ. 正規表現で \n[^(\.\n)] としてを空欄に置換すると2行目以降の頭が消えてしまいます。---> AaaaXbbbYcccZ.  文頭の文字が消えずつなげる方法を教えて下さい。

  • 秀丸で改行コード"[CR]"を変換する方法は?

    秀丸で改行コード"[CR]"を変換する方法は? "[CR]"が入っているテキストファイルがあり、 このテキストファイルを秀丸で開いたところ、そのまま"[CR]"と表示されてしまいます。 これは改行コードなので、秀丸内で"[CR]"と表示されずにきちんと改行されるようにしたいのですが、 どうすれば良いでしょう。 ちなみに置換で 置換前に"[CR]" 置換後に"¥n"、正規表現にチェックを入れて置換したところ、 CRだけが改行に置き換わり"[]"だけが文中に残ってしまいました。 よろしくお願いいたします。

  • 正規表現について教えてください

    これから正規表現を勉強しようとする者です。 次の2点について教えて頂きたいのですが、よろしくお願いします。 1.次のような置換をする正規表現は? 例えば、 ■■■ あいうえお かきくけこ ■■↓ ○○○ あいうえお かきくけこ ○○○ というテキストがある場合、○○○~○○○までの「あいうえお」 のみを「アイウエオ」に置換するには、どのような正規表現にすれば 良いのでしょうか? 2.秀丸エディタでは、フォルダ内の全ファイルを一括で置換する 事はできるのでしょうか? 以上2点です。 よろしくお願いします。

  • 秀丸の改行キーについて

    秀丸で検索や置換を正規表現でするとき ¥nがバックスラッシュnになります こちらが正統であることは分かっているのですが ¥nにしたいのです 何か方法はありますか?