RichTextboxでHTMlタグのみ色を変えたいのですが への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 winvis  (学生)
投稿日時
2010/7/17 19:22:34
現在、RichTextBoxを使って、テキストエディタを使っているのですが
TeraPadのようにHTMLタグを青色・ダブルクオーテーション(”)を緑色にできたらいいな
と思っておもいついたのは、検索して < で始まる文字を探して、その文字の色を変えようと考えたのですが、どうすればいいんでしょうかorz
TeraPadのようにHTMLタグを青色・ダブルクオーテーション(”)を緑色にできたらいいな
と思っておもいついたのは、検索して < で始まる文字を探して、その文字の色を変えようと考えたのですが、どうすればいいんでしょうかorz
TeraPadはわかりませんので、RichTextBoxで < から始まる文字列の色を変える例を紹介します。
(多分 でも動くとは思います)
ただ、使用目的がhtmlのタグを色分けするということでしたら、これだけでは不十分でもうちょっと工夫が必要と思います。たとえば、 < の後にスペースがあって、そのあとにタグ名がある場合や、</h1>などのような閉じタグが考慮から漏れています。これらの問題は正規表現のパターンを変えることで解決できます。
さらに、JavaScriptなどの内部で使用されている < にも反応してしまいます…。この問題は正規表現だけでは解決困難で、プログラムによるhtmlの構造解析が必要になると思います。
さらに、エディタを作られているということであれば、入力中にどんどん色を変えていきたいということだと思いますが、上述の例はすべての入力が完了している状態を前提としており、入力中にリアルタイムで反応するためにはまだ工夫が必要です。