秀丸の質問です。あるテキストで2つ以上空白行があれば1つの空白行にしたいです。空白行が1行しかない場合は、そのままの状態とします。例えば下記のような文書があるとします。There'sとa ladyとの間は空白行が1行しかないので、このままの状態にします。a lady who'sからsureまでは空白行が3行あるので空白行を2行消して、1行にしたいです。この場合、テキストに5行の空白行があったり、10行の空白行があるかも知れません。これを1行の空白行にしたいです。正規表現でできるでしょうか?

この場合、空白行にもスペースが潜んでいるかもしれないのです。
There's

a lady who's
    


sure

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/10/03 16:53:56
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:talepanda No.1

回答回数57ベストアンサー獲得回数12

ポイント27pt

検索: (^[  \t]*\n)[  \t\n]*

置換: \1

一行目の空白行のスペースなども削除したいなら、

検索: ^[  \t]*\n[  \t\n]*

置換: \1

http://www.google.com

id:silverspring

うぉ~できました。ありがとうございます。正規表現の意味まで解説してくれると嬉しかとです。

2006/10/03 16:37:50

その他の回答2件)

id:talepanda No.1

回答回数57ベストアンサー獲得回数12ここでベストアンサー

ポイント27pt

検索: (^[  \t]*\n)[  \t\n]*

置換: \1

一行目の空白行のスペースなども削除したいなら、

検索: ^[  \t]*\n[  \t\n]*

置換: \1

http://www.google.com

id:silverspring

うぉ~できました。ありがとうございます。正規表現の意味まで解説してくれると嬉しかとです。

2006/10/03 16:37:50
id:talepanda No.2

回答回数57ベストアンサー獲得回数12

ポイント23pt

一行目の空白行のスペースなども削除したいなら、

検索: ^[  \t]*\n[  \t\n]*

置換: \1

間違えました。こっちは

置換: \n

です。

http://www.google.com

id:taknt No.3

回答回数13539ベストアンサー獲得回数1198

ポイント30pt

マクロですが・・・。

次の内容を テキストファイルに保存して 名前を a.mac とかにします。

ファイルは、秀丸が入っているところに 入れたらいいでしょう。

空白は 1つになってしまいますが・・・。


replaceallfast "  " , " ";

while( result > 0 ) {

replaceallfast "  " , " ";

}

replaceallfast " " , " ";

while( result > 0 ) {

replaceallfast " " , " ";

}

replaceallfast "\\n \\n" , "\\n",regular;

while( result > 0 ) {

replaceallfast "\\n \\n" , "\\n",regular;

}

replaceallfast "\\n\\n\\n" , "\\n\\n",regular;

while( result > 0 ) {

replaceallfast "\\n\\n\\n" , "\\n\\n",regular;

}




http://hide.maruo.co.jp/lib/macro/nashi.html

id:silverspring

オーイエス!これもかなりナイスですね。ありがとうございます!

2006/10/03 16:52:55
  • id:talepanda
    (^[  \t]*\n)[  \t\n]* について。
    ()は、まあ、その部分を覚えておくためのものです。置換のときに\1でここを参照します。
    ^は行頭。[  \t]は半角スペース、全角スペース、タブのいずれかに一致するもの。*はそれが0回以上あるということ。\nは改行。
    なので前半は、行頭以降に半角スペース、全角スペース、タブのいずれかしか含まない(または何もない)で改行。ということになります。
    で後半。これ以降に連続する半角スペース、全角スペース、タブ、改行にマッチします。

    結局、後半部分が削除されることになります。ようするに、連続した空白行のうちの二行目以降が削除される、ということです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません