2重引用符で囲まれた文字列の検索方法

解決


IMA  2004-03-10 08:19:56  No: 82529  IP: [192.*.*.*]

環境:Win2000,VB6sp5

htmlテキストの2重引用符で囲まれた部分を抽出し文字色を変えようとしています。

しかし、正規表現での検索式がうまく作れません。

最初、"[^"]*" などとしてみたのですが、必要ない部分までヒットします。
(当然といえば当然ですが)
たとえば、以下では
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
"JavaScript" と "text/javascript" をヒットさせたいのですが、
" TYPE=" までヒットしてしまいます。

また、
 "hogehoge.db?X001=" +Delete0pad(NS) +"&X0201=" +num;
などといったスクリプトも含まれますので、" の直前に = が存在するといった
検索もできません。

うまい検索式は無いでしょうか。
識者の皆様のアドバイスをお願いします。

編集 削除
すぐハル  2004-03-10 08:36:34  No: 82530  IP: [192.*.*.*]

効率の良い方法とは言えませんが単に検索と言う観点で
例えば下記の様な考え方は?

例1.dat = Split(tmp,chr(34)) で分割した時に
      dat(1) や dat(3)  等の添え字が奇数のもの

例2.InStr で " を探して行き、奇数番目と偶数番目に
      囲まれた文字列

編集 削除
ねろ  URL  2004-03-10 09:58:25  No: 82531  IP: [192.*.*.*]

テキストの色を部分的に変えるということはRichTextBoxを使うと思いますが、
色変更の処理をRichTextBoxのTextベースでやろうとすると、
RichTextBox.SelStart,RichTextBox.SelLength,RichTextBox.SelColor
という順番で色を変更するわけですが、これがかなり処理が重い、フリーのソフトの中には
これでやっているソフトも有りますが、ちょっと長いHTMLだとフリーズしたのではないかと
思われる位遅くなります。そこでやむおえず、RichTextBox.TextRTFを使うことになるのですが
そうなるとTxtRTFの中のCHR(34)の次ににカラーテーブルのタグを挿入することになります。
ここでやっと結論、InStrでCHR(34)を探してカラータグを挿入すると言う方法が一番簡単かと思います。
ちょっと余計なおせっかいだったかな。。。。。。(^^;

編集 削除
IMA  2004-03-10 12:14:08  No: 82532  IP: [192.*.*.*]

>すぐハルさん
ねろさんからも、すぐハルさん以外の提案が無いとなると
やはり、コードで処理してゆくしかない気がしています。
他のhtmlタグは正規検索・置換でうまく行っているものですから
何とか簡単にできる手法は無いかと考えていました。

>ねろさん
"HTML忠太"はなかなか使い勝手の良さそうなソフトですね。
インターフェイスは参考にさせていただいております。

私の今回の目的は、IEの遠隔操作ソフトを作成・改良中なのですが
Dom参照の際、ブラウザーのソースとは少し違った表示になるので
Dom参照でのソースを理解しやすくするツールとしてのものです。

なお、色つけはアドバイスの如く、TextRTFで操作しています。
既にいろ変更した一部を別の色にする場合は、後部タグ?を注意しないと
いけないですよね?
また、お決まりの如く、文字列はMidステートメントでしております。

なお、
解決のチェックは、もう少し他の方のアドバイスと待ってからにします。

お二方ともアドバイス有り難うございました。

編集 削除
IMA  2004-03-11 07:23:22  No: 82533  IP: [192.*.*.*]

おかげさまで、希望の動作を処理できるようになりました。
改めて御礼申し上げます。

他の方のアドバイスも無いようですし、これで解決とさせていただきます。

編集 削除