- ベストアンサー
正規表現の使い方をお教えください
サクラエディターを使っています。 正規表現の使い方の勉強中ですWEBも参考させていただいているのですが 下記のようなテキストがあるとき空白2行以上あるときこれを1行にしたいのです コヒノール 芯ホルダー4301 木製軸 2.5mm・2mm芯ホルダー KOH2ミリ芯ホルダー5216黒軸 木製軸でないものもある 木軸ショート/2.5ミリ芯 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
サクラエディタでは、検索条件として改行含む複数行の範囲を 指定することができません。 http://sakura.qp.land.to/?FAQ%2F2 どうしても正規表現を使った置換で対応したいのなら、一回の 置換でなく二回の置換で可能な場合もあります。 改行である\r\nを、テキスト内で使われていない記号や文字に 置き換えます(例:改行記号を★に変換するなど)。 置換前: \r\n 置換後: ★ これで質問の例文が以下のようになります。 コヒノール 芯ホルダー4301★★木製軸 2.5mm・2mm芯ホルダー★★★KOH2ミリ芯ホルダー5216黒軸★★★木製軸でないものもある★★木軸ショート/2.5ミリ芯★★ ★を改行+改行にします 置換前: ★ 置換後: \r\n\r\n これで以下のような例文になります。 コヒノール 芯ホルダー4301 木製軸 2.5mm・2mm芯ホルダー KOH2ミリ芯ホルダー5216黒軸 木製軸でないものもある 木軸ショート/2.5ミリ芯 このような空白行が常に一つあるものにするだけなら、上記 設定で問題ないですが、空白行がない改行されただけの場合、 連続した行も空白行が常に設定されてしまいます。 空白2行以上あるときのみを対象にしたい場合は、標準機能 としては無理なので、以下の方法で対応するしかありません。 http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?ol=200306&tree=c2866 [2866] Re5: 連続する改行を一つにしたい ▽ 2003/4/8 (火) 14:59:37 MMX Opera/7.03 (Windows NT 5.1; U) [ja] ▼ すいさん > 以外にありません。 if文の原料が少ないと苦しいです。 エディタの状態値(Getxxxx)は不足している。 ------ 連続空白行圧縮.PPA S_GoFileEnd(0); // ファイルの最後に移動 while True do begin S_SearchPrev('^[ \t]*\r\n', 4); // 前を検索 if S_GetSelectedString(0) = '' then Break; S_InsText('★'): // 置換 end; S_ReplaceAll('^★+', '\r\n', 4); // ------------------------------------- このマクロはPPA.DLLが必要です。 http://sakura-editor.sourceforge.net/htmlhelp/HLP000269.html ダウンロード先の一番上にある[ DownLoad: PPA_124.LZH ]が 必要なものです。 解凍したらPpa.DLLをサクラエディタのフォルダに追加します。 ----で挟まれた範囲をエディタに記載して[名前を付けて保存]で 「連続空白行圧縮.PPA」などにして、[ macro ]フォルダに保存。 テキストを開いた状態で、[ツール]→[名前を付けてマクロを実行] で上記マクロを探し[開く]で実行します。
その他の回答 (1)
- admiral_ya
- ベストアンサー率56% (110/193)
正規表現は、ソフトによって動作に若干の違いがあるので、OKとは言い切れませんが、 ^\n\n+ ↓ \n の置換でおそらく大丈夫だと思います ただ一度では削除できず、ヒットしなくなるまで複数回行う必要があるかも
お礼
早速の回答ありがとうございます。 テストさせていただきましたがサクラエディターではだめのようです この後も勉強を続けたいと思いますのでこれからも宜しくお願いたします。 ありがとうございました。
お礼
早速の回答 ありがとうございます。 大変詳しい回答で色々なことが分かりましたが 同時に私にはまだまだ山のように勉強しないと いけないとしりました。 これからもお世話になることが多いと思いますが 宜しくお願いしたと思います。