正規表現の部分を強調
No.02867
える
さん 99/04/09 03:49
強調表示で正規表現が使えますが、その中の一部だけを強調するというような拡張は
できないもんでしょうか?
たとえば、正規表現のメタキャラクタに { と } を追加し、JRE32.DLL に渡す前に秀
丸が除去することにして、正規表現にマッチした時は { と } の間の内容だけ強調表
示される…みたいな機能がほしいと思うのです。
必要性がでる例として Delphi の message 指令は単純に正規表現で
[Mm][Ee][Ss][Ss][Aa][Gg][Ee] +[\w0-9]+ *;
と記述すると
message WM_ACTIVE;
にマッチしますが、この時に message の部分だけを強調対象にしたいのです。
マクロを使っても無理そうな感じがしました。
jre32.dll じゃなくて bregexp.dll(perl5互換) であれば
(?i)message(?=\s+[\w\d]+\s*;)
という正規表現にしたいところなんです。
[
△
]
RE:02867 正規表現の部分を強調
No.02875
ひろ
さん 99/04/09 15:45
えるさん今日は、ひろです。
> にマッチしますが、この時に message の部分だけを強調対象にしたいのです。
message を「特に強調」に割り当てては如何でしょうか?
[
△
]
RE:02875 正規表現の部分を強調
No.02883
秀丸担当
さん 99/04/09 16:51
> えるさん今日は、ひろです。
>> にマッチしますが、この時に message の部分だけを強調対象にしたいのです。
> message を「特に強調」に割り当てては如何でしょうか?
それだとただの message だけの個所もひっかかってしまうので、
[Mm][Ee][Ss][Ss][Aa][Gg][Ee] +[\w0-9]+ *;
を普通の強調表示にして、
[\w0-9]+ *;
を特に強調にして、特に強調の色を普通の色にしてみては・・?
[
△
]
RE:02883 正規表現の部分を強調
No.02889
える
さん 99/04/09 22:24
>> えるさん今日は、ひろです。
ひろさん、担当様、おはようございます。
>>> にマッチしますが、この時に message の部分だけを強調対象にしたいのです。
>> message を「特に強調」に割り当てては如何でしょうか?
>それだとただの message だけの個所もひっかかってしまうので、
>[Mm][Ee][Ss][Ss][Aa][Gg][Ee] +[\w0-9]+ *;
>を普通の強調表示にして、
>[\w0-9]+ *;
>を特に強調にして、特に強調の色を普通の色にしてみては・・?
えっと…これを行うと、他の「強調」になっている予約語たちが全滅はせずとも壊滅
するような気がするのですが?
っと、試したところ、非常に多くのパターンにマッチするだけあってかなりひどいこ
とになりますね (^^;
指令語の着色は難しいですねぇ…。
うー、Delphi Highligt Rev.2 はとりあえずメッセージ定数まで着色で御茶を濁して
おきますぅ。
[
△
]