正規表現による連続した空行の削除方法No.17821
mizutori さん 04/08/23 22:42
 
■正規表現による連続した空行の削除方法
使用版:   秀丸 4.12
動作環境: Windows 2000 SP4

正規表現を使って、連続した空行を削除したいと思っていますが、
どうもうまくできません。どうすればよいでしょうか。

例えば、次のテキストで、2〜4行の部分を削除したいと思います。
-----[ a.txt ]---
001:



005:
---
空行の長さは不定なので、正規表現を使って置換しようと思います。
  検索欄:[\n+] または [\n{1,}]
  置換欄:[\n]
しかし、これで実行した場合、改行が二個までしかマッチしません。
期待する動作は「連続した改行の最大個がマッチする」ことですが、
そのようになっていません。なにか、検索設定があるのでしょうか。

※検索欄を[\n\n\n]などと指定すると、確かに3個の改行がマッチしますが、
テキスト内の空行の出現は不定なので、これでは実用的ではありません。

[ ]
RE:17821 正規表現による連続した空行の削No.17822
h-tom さん 04/08/23 23:50
 

h-tom です。

解決策ではありませんが・・・。

>■正規表現による連続した空行の削除方法
>使用版:   秀丸 4.12
>動作環境: Windows 2000 SP4
>
>正規表現を使って、連続した空行を削除したいと思っていますが、
>どうもうまくできません。どうすればよいでしょうか。
秀丸ヘルプ
「目次−検索系コマンド−\nを使った複数行検索の際の制限について」
を参照して下さい。

[ ]
RE:17821 正規表現による連続した空行の削No.17823
たけのこ さん 04/08/24 09:07
 
一般ユーザのたけのこです。

\nの数え方は、h-tomさんの投稿の通りでして、お望みのことは発想の転換で出
来ます。連続した改行とは、即ち(例を見る限りでは)改行だけの行のことのよ
うですから、

検索:^\n
置換:

としてやれば、結果オーライだと思われます。

(^^)/”

[ ]
RE:17822 正規表現による連続した空行の削No.17826
mizutori さん 04/08/24 12:01
 
>秀丸ヘルプ
>「目次−検索系コマンド−\nを使った複数行検索の際の制限について」
>を参照して下さい。

ヘルプに改行記号の検索についての特記があることを教えていただき
ありがとうございました。そういった仕様なんですね。
正規表現での改行検索がうまくいかなくてずっと悩んでいました。;-)

なお、連続した空行の削除については、「たけのこ」さんに教えて
いただいた正規表現の方法で所望が実現できました。

[ ]
RE:17823 正規表現による連続した空行の削No.17827
mizutori さん 04/08/24 12:02
 
>検索:^\n
>置換:
>としてやれば、結果オーライだと思われます。

すばらしい。解決策をありがとうございました。まさに求めていた機能です。

(1) 検索欄:[^\n]    置換欄:[]  --> 空行をすべて削除
(2) 検索欄:[^\n\n]  置換欄:[]  --> 二行以上の連続した空行を削除

少し応用して、「二行以上の連続した空行を削除」もできました。

確かに、「発想の転換」が必要で、[^\n] はちょっと思いつきませんでした。;-)

[ ]