複数行コメントの質問No.28324
凡人さん さん 10/05/25 00:34
 
いつもお世話になっております。
環境:秀丸エディタ8.00 32bit

【サンプルの文章1】
<aaa bbb="value">XXX</aaa>

【サンプルの文章2】
<aaa
ccc="value"
ddd="value"
bbb="value">
XXX
YYY
</aaa>

aaaはタグ
bbb,ccc,dddは属性です



HTMLの強調表示定義を作成してます。
強調表示Aの定義で「開始タグ<aaa>」から「終了タグ</aaa>」までをまとめて強調1
の色にします。
その後、<aaa>と</aaa>のみを強調2の色にします。
このように最初にまとめて色を付けて、後から特定の箇所に色を上書きして表示させ
てます。

強調表示A
89,</?.*?>
25,<.*?>.*?</.*?>



そこで複数行コメントでも上記の流れで「まとめて色を付けてから特定の箇所に色を
上書きする」ということがやりたいのですが
以下に記述した「複数行コメント1」では最初に付けた色が反映されませんでした。

できれば「サンプルの文章2」のように「タグの中」や「挟まれている文字列」の中
に改行も含みたく、
タグの中に書き込まれる属性も決められた順番で出現しないので場合複数行コメント
を使いたいので「複数行コメント2」のように定義してみましたが色が上書きされま
せんでした。
強調表示のように特定の箇所に上書きする形で色をつけられる方法もしくは代替にな
る方法はございませんでしょうか?


複数行コメント1(強調表示のように上書きされれ色が付くか確認するためだけの定
義)
/<HilightMulti>
/0007,00000004,00,00,00010001,"</?.*?>",00000002,""
/0004,00000004,00,00,00010001,"<.*?>.*?</.*?>",00000002,""



複数行コメント2(サンプルの文章2用)
/<HilightMulti>
/0007,00020002,00,00,00010005,"</?aaa",00000000,">"
/0004,00010002,00,00,00010005,"<aaa",00010001,"</aaa>"

[ ]
RE:28324 複数行コメントの質問No.28326
秀丸担当 さん 10/05/25 09:52
 

試してみたところ、言われている通りになりました。
入れ子は、開始文字列の終端位置からがスタートになるので、こういった指定は
現状ではできないです。

とりあえずの思いついた回避方法では、後方一致指定を使って、

 開始「(?=<aaa)」終了「(?=</aaa>)」
 開始「<aaa」終了「</aaa>」
 
として、入れ子の親側を最上位にもってくるとそれなりにはなりました。
ただaaaが本当に「aaa」ならいいですが、開始に「<([a-z]+)」などを使って終
了で「</\1>」を使うような使い方は、後方一致指定ではできないです。


他には単純に、

 開始「<」終了「>」

を1つだけ定義して、オプションで「HTMLのカラー表示」をONにすると、簡単に
標準のHTMLのカラー表示を再現できます。
これをベースにカスタマイズを加えると簡単かもしれません。


他には、

 開始「<aaa」終了「</aaa>」
 開始「(?<=>)」終了「(?=<)」

というのでもいいかもしれないです。
これであればタグも使えるかもしれないです。

[ ]
RE:28326 複数行コメントの質問No.28327
凡人さん さん 10/05/25 11:11
 
> 開始「(?=<aaa)」終了「(?=</aaa>)」
> 開始「<aaa」終了「</aaa>」
> 
>として、入れ子の親側を最上位にもってくるとそれなりにはなりました。


教えて頂きました上記の方法を取り入れて無事に解決できました。
解決できてスッキリしました。
ありがとうございます。

[ ]