秀丸の正規表現による強調表示についてNo.19650
mi さん 05/07/17 17:19
 
秀丸で正規表現にてマッチする複数行の強調表示を定義したいのですが
どうもうまくいきません。

たとえば,

$AB
 abcdefg
 0123456
$CD

のような記述について,$ABと$CDの間を
コメントとして扱いたい(色を変えたい)場合に

\$AB.*\n[.\n]*\$CD

と文字列指定するのは,あやまりでしょうか。
そもそも複数行を正規表現でマッチさせるのは不可能ですか?

とすれば,上記のマッチングはどのようにすれば可能でしょうか?

また,
1. $ABと$CDも色が変わるようなマッチ(おそらく上記のような雰囲気)
2. $ABと$CDは色が変わらないようにマッチ(思いつきません...)
する方法はありますか?

どうかご教授ください。お願いします。

[ ]
RE:19650 秀丸の正規表現による強調表示にNo.19651
h-tom さん 05/07/17 21:14
 

h-tom です。

>  秀丸で正規表現にてマッチする複数行の強調表示を定義したいのですが
>どうもうまくいきません。
複数行の強調表示は無理みたいですよ。

秀丸のヘルプ("\nを使った複数行検索の際の制限について"の最後のほう)には
>ちなみに、強調表示で指定する文字列の中には\nは使えません。
>(強調表示は複数行に対応してません)
と、あります。

とりあえず、正規表現について・・・。
>\$AB.*\n[.\n]*\$CD
>と文字列指定するのは,あやまりでしょうか。
"[.\n]*"は".(ドット)"または、改行文字の0個以上の繰り返しになります。
キャラクタクラスを示す[]の中では、"."は任意の一文字を示すメタキャラクタ
ではなく、".(ドット)"そのものを意味します。

>そもそも複数行を正規表現でマッチさせるのは不可能ですか?
>とすれば,上記のマッチングはどのようにすれば可能でしょうか?
複数行を正規表現でマッチさせることは可能ですが、秀丸では複数行の検索に
制限があります。
詳細はヘルプの"\nを使った複数行検索の際の制限について"を参照。

>2. $ABと$CDは色が変わらないようにマッチ(思いつきません...)
>する方法はありますか?
秀丸のVer.5から、正規表現が拡張されたので、それを使えばたぶん可能。

[ ]
RE:19651 秀丸の正規表現による強調表示にNo.19659
秀丸担当 さん 05/07/19 12:06
 

>  秀丸で正規表現にてマッチする複数行の強調表示を定義したいのですが
>どうもうまくいきません。

複数行の強調表示は、現在のところできません。
V5.00βでもできませんが、V5.00よりも後のバージョンで対応できるかもしれま
せん。

>2. $ABと$CDは色が変わらないようにマッチ(思いつきません...)
>する方法はありますか?

複数行でなく一行の場合、V5.00βであればできるはずでしたが、今確認してみ
たところ、不具合があるようでした。V5.00βのほうを修正したいと思います。
いずれ複数行でできるようにする場合も、正規表現でできるようになることにな
ると思います。

[ ]
RE:19659 秀丸の正規表現による強調表示にNo.19669
mi さん 05/07/21 16:50
 
h-tom さま
秀丸ご担当者 さま

詳細なご回答ありがとうございました。
今回の誤りも含めて,もう一度,他の文法も確認いたします。

複数行での強調表示は,処理による負荷のため
現在のところできないとのことですが

処理速度とのバランスは非常にネックなのだと思います。
快適な秀丸の動作を犠牲にするわけにもいかないですものね。

むずかしいところですが
今後の開発に期待いたします。

ありがとうございました。

[ ]