dポイントプレゼントキャンペーン実施中!

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

A 回答 (3件)

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



gofiletop;
while (1) {
searchdown "^\\n\\n", regular;
if (!result) break;
down;
beginsel;
while (code == '\r') {
down;
}
delete;
}
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/04/24 10:08

#1です



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

これは動作しました
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/04/24 09:57

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



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

美しくない方法ですが
置換 \n → $
   ${4,} → $$$
   $ → \n
とすれば、3行以上連続する空行を2行にできます。
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2006/04/22 16:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!