正規表現で置換出来ますか?No.02558
うなふぃ さん 99/02/16 14:27
 
正規表現を使って置換を行うことは出来ますか?
例えば、フルパスのファイル名をパス部分とファイル名間にTABを入れたくて、
(検索) \\[^\\\.]+\.    (\で始まって\と.以外の文字が1つ以上有って.で
終わる)
(置換) \\・[^\\\.]+\.   (・はTABです。)

と行うと、
C:\Windows\Win.Ini が
C:\Windows\<TAB>[^\.]+.Ini に変換されてしまいました。

上記の様な事を実現する方法ありますか?

[ ]
RE:02558 正規表現で置換出来ますか?No.02565
秀丸担当 さん 99/02/16 17:19
 
>正規表現を使って置換を行うことは出来ますか?
>例えば、フルパスのファイル名をパス部分とファイル名間にTABを入れたくて、
>(検索) \\[^\\\.]+\.    (\で始まって\と.以外の文字が1つ以上有って.で
>終わる)
>(置換) \\・[^\\\.]+\.   (・はTABです。)

V2.29ではできませんが、現在β版を公開中のカラーバージョン秀丸
ならば、タグ付き正規表現を使うことで可能になります。

検索文字 \f\\\f[^\\\.]+\.
置換文字 \1\t\2

というような感じで、検索文字を\fで区切って、区切りの間にあった文字を
\1 \2 \3 という数字で置き換えることができます。

[ ]
RE:02558 正規表現で置換出来ますか?No.02566
番頭++ さん 99/02/16 17:32
 
>例えば、フルパスのファイル名をパス部分とファイル名間にTABを入れたくて、

Ver. 3.0x なら、結構、簡単に出来ますが ...
とりあえず、こんなマクロで出来ないこともないのですが ...

    c:\windows\aaa.bbb はできますが、
    c:\windows\aaa はだめです。

//  test1.mac マクロでは \ は \\ と書きます ...
    searchdown "\\\\[^\\\\\\.]+\\.", regular, inselect; //  範囲選択も可能
    while( result ){
        escape; right;
        if( code != '\t' ){ //  tab でなければ、
            insert "\t";    //  tab をいれる。
        }
        finddown;
    }
endmacro;

[ ]
RE:02565 正規表現で置換出来ますか?No.02567
mago さん 99/02/16 17:43
 
>V2.29ではできませんが、現在β版を公開中のカラーバージョン秀丸
>ならば、タグ付き正規表現を使うことで可能になります。

現在β20を使用していますが、タグ付き正規表現については
ヘルプに記載されているのでしょうか?
探したけど見つかりませんでした。

なかなか便利なんで詳しく知りたいです。
宜しくお願い致します。

mago

[ ]
RE:02567 正規表現で置換出来ますか?No.02568
番頭++ さん 99/02/16 17:51
 
>現在β20を使用していますが、タグ付き正規表現については
>ヘルプに記載されているのでしょうか?
>探したけど見つかりませんでした。

V 3.00 βのヘルプは今はないみたいです。
とりあえず、ここを見ると参考にはなります。

http://hidemaru.xaxon.co.jp/hmcolor.html

[ ]
RE:02568 正規表現で置換出来ますか?No.02569
mago さん 99/02/16 19:32
 
>V 3.00 βのヘルプは今はないみたいです。
そうですか。

>とりあえず、ここを見ると参考にはなります。
ありがとうございます。さっそく見てみます。

mago

[ ]
RE:02565 正規表現で置換出来ますか?No.02572
うなふぃ さん 99/02/17 11:07
 
カラーβは愛用してます。(^^)

早速やってみます。
ありがとうございました。m(__)m

[ ]