¥の扱いについてNo.24622
YU さん 08/03/12 12:29
 
お世話になっております。

以下のマクロ実行で置換後¥がおかしくなります
replaceallfast "¥" , "\" , casesense;

以下だとうまくいきます
replaceallfast "¥" , "\\" , casesense;


casesenseは正規表現ではない文字の置換で\は文字と認識しないのでしょうか?
casesenseでも\\のように同じ文字を繰り返さないといけないのはほかにありますか?


[ ]
RE:24622 ¥の扱いについてNo.24623
秀丸担当 さん 08/03/12 13:12
 

>casesenseは正規表現ではない文字の置換で\は文字と認識しないのでしょうか?
>casesenseでも\\のように同じ文字を繰り返さないといけないのはほかにありますか?

マクロの文字列中の\は、正規表現でなくても\\と書く必要があります。
casesenseかどかは関係ないです。
「"」そのものを書く場合など、\によるエスケープが必要なためです。
insert "\"";


正規表現で書く場合は、さらに\\が二重になって、\\\\と書くことになります。
例:
replaceallfast "¥" , "\\\\" , casesense, regular;

[ ]
RE:24623 ¥の扱いについてNo.24625
YU さん 08/03/12 15:07
 
>casesenseかどかは関係ないです。
↑regularのマクロの時のみ「\」が必要だと勘違いしていました。

>「"」そのものを書く場合など、\によるエスケープが必要なためです。
>insert "\"";
>
秀丸担当様、ありがとうございます。
casesenseの場合
「\」と「"」前にのみ「\」を一文字いれるということでよろしいでしょうか?

「.」「*」「^」等は「\」は入れなくてよいということでしょうか?

不勉強で本当に申し訳ありませんが、よろしくお願いします。

[ ]
RE:24625 ¥の扱いについてNo.24626
秀丸担当 さん 08/03/12 15:21
 

>casesenseの場合
>「\」と「"」前にのみ「\」を一文字いれるということでよろしいでしょうか?

「\」の後に続く文字は特殊な意味を持つのですが、「\」を「\\」と書いてさえ
おけば、「\」の特殊な解釈はされないので、この2つだけ気をつければ問題な
いです。
詳しくは、マクロヘルプの
目次− 式について−文字列
を参照してみてください。

>「.」「*」「^」等は「\」は入れなくてよいということでしょうか?

これは正規表現でなければ、「\」を入れなくてもいいです。

[ ]
RE:24626 ¥の扱いについてNo.24627
YU さん 08/03/12 16:34
 

>詳しくは、マクロヘルプの
>目次− 式について−文字列
>を参照してみてください。

目次を参照いたします。
お忙しい中ありがとうございました。

[ ]