|   | 
			
h-tom 様,PineCone 様 
 
ご回答ありがとうございました.先に PineCone 様からのご回答を使いながら進めさせて頂きます. 
 
>「\」は、特殊な文字(エスケープキャラクタ)なので、 
>マクロ中では「\\」と記述する必要があります。 
>一度、ご確認ください。 
 
教えて頂いたページ,および公式マニュアル 171 ページなどを見まして,マクロ中の文字列として「"」「'」「\」を用いる場合,「\"」「\'」「\\」と書かねばならない,ということが分かりました. 
 
ということは,先に私が質問した中のマクロについて, 
 
searchdown2 "MYOJI\\)\\nmyoji@usodomain\\.uso\\.jpjp$", casesense, regular; 
 
と直せばいいわけですね. 
 
さて,このようにしたら確かに期待通りの動き(エラーが出ても送信されてしまうのは問題ですが,検索には引っかかりました)をしたのですが,まだ一部,理屈として混乱しているところがあります.もしお分かりになりましたら,お教え下さい. 
 
混乱しているのは「改行」と「タブ」です.ニュアンスを正確に伝えることが難しいのですが,先例において「\)」は,正規表現中に「)」を用いる場合は前に「\」をつけてエスケープしなければならない.マクロ中では「\」を「\\」としなければならないので,結果として「\\)」になる.と理解したのです. 
 
しかし,正規表現において改行は最初から「\n」で1文字扱いです.「n」を表すために「\」でエスケープするというわけではありません.一方,教えて頂いたページにも『マクロで改行文字を記述するには「\n」を使います』と書いてあります.すると,この「\」は「\\」にしなくてもいいのではないかとも思い, 
 
searchdown2 "MYOJI\\)\nmyoji@usodomain\\.uso\\.jpjp$", casesense, regular; 
 
も試してみたのです.そうしたら,これもきちんと検索したのです. 
 
 
h-tom 様に教えて頂いた方法で試してみたところ, 
 
message "MYOJI\\)\\nmyoji@usodomain\\.uso\\.jpjp$"; 
 
のアウトプットは1行で, 
 
MYOJI\)\nmyoji@usodomain\.uso\.jpjp$ 
 
 
一方, 
 
message "MYOJI\\)\nmyoji@usodomain\\.uso\\.jpjp$"; 
 
のアウトプットは2行で, 
 
MYOJI\) 
myoji@usodomain\.uso\.jpjp$ 
 
 
つまり,前者は正規表現 
MYOJI\)\nmyoji@usodomain\.uso\.jpjp$ 
を探し,後者は正規表現込みの2行 
MYOJI\) 
myoji@usodomain\.uso\.jpjp$ 
を探すということになるのでしょう. 
 
秀丸メールのマクロとして,どちらの方が安全ということはあるのでしょうか. 
 
どちらでもいいとなれば,マクロ中の「"」で囲む中に用いる正規表現においては「\」を「\\」と書く,と機械的に覚えてよさそうに思っております. 
 
何か参考になりそうなことがありましたら,ご教示願えませんでしょうか.よろしくお願い致します. 
			 | 
		  
	 |