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

解決済みの質問

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

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

投稿日時 - 2006-04-22 14:50:28

連想キーワード:

QNo.2107186

暇なときに回答ください

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

複数の空白行を1行にまとめるマクロです。

gofiletop;
while (1) {
searchdown "^\\n\\n", regular;
if (!result) break;
down;
beginsel;
while (code == '\r') {
down;
}
delete;
}

投稿日時 - 2006-04-23 17:47:25

お礼

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

投稿日時 - 2006-04-24 10:08:29

ANo.3

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

ANo.2

#1です

$は正規表現では行末を意味していますね。すみません。@で試してみてください。

これは動作しました

投稿日時 - 2006-04-22 17:17:23

お礼

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

投稿日時 - 2006-04-24 09:57:58

ANo.1

秀丸ヘルプに下記記載があります

>\n自体を任意の回数繰り返すような正規表現は、期待通りに動作しないことがあります。
>もし「$」で置き換え可能な場合にはなるべく「$」を使うようにしてください。

美しくない方法ですが
置換 \n → $
   ${4,} → $$$
   $ → \n
とすれば、3行以上連続する空行を2行にできます。

投稿日時 - 2006-04-22 15:44:44

お礼

回答ありがとうございます。
なるほどhelpに書いてありました。すみません。
道理で幾ら探してもサンプル例が無いハズです。

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

投稿日時 - 2006-04-22 16:49:32

あわせてチェックしたい
  • 秀丸の改行削除もしくは置換 ...
  • 改行を含む置換 ...
  • 改行を含む置換について ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら