アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB6/VBAでお願いします。

<tr>
<td>あいうえお</td>
<td>かきくけこ</td>
</tr>

ここで、<td>と</td>に挟まれた文字列を取得しようとするのですが、
ABCとXYZ両方が取得できます。任意の文字列を含まない指定はどう
すればいいでしょうか?

この場合、「きくけ」を含まない「あいうえお」を取得したいと思い
ます。

A 回答 (3件)

回答2です。


正規表現は難しいですね。「<td>[^き]*[^く]*[^け]*</td>」でいけるかと思ったら「かきaくbけこ」にもヒットしてしまいます。
で、よく探してみたらありました。
http://funcchan.blog16.fc2.com/blog-entry-19.htm …
「"<td>((?!きくけ).)*?</td>"」でいけそうです。VBSでの確認です。

個人的には「ある文字列を含まない」正規表現は、よく確認しないと抜けがありそうで恐いと思いました。
    • good
    • 0
この回答へのお礼

ありがとうございます。

それでいけますね。
はじめたところでなかなかよくわからないのですが・・

ところで、最初に(<td).*?</td> と書きましたが、
秀丸エディタの正規表現検索だと
<td.*?</td> でも
(<td).*?</td>でも
ヒットしますが

VB、正確にはVBAですがこれだと上の括弧なしには
ヒットしません。この括弧にはどういう意味がある
のでしょうか?

お礼日時:2009/10/12 20:48

>ここで、<td>と</td>に挟まれた文字列を取得しようとするのですが、


>ABCとXYZ両方が取得できます。

ということは、「<td>と</td>に挟まれた文字列を取得」することはできたのでしょうか?
差し支えなければそれを示してもらえないでしょうか。

この回答への補足

ありがとうございます。

挟まれて文字列は次ので取得できています。
"(<td).*?</td>"

よろしくお願いします。

補足日時:2009/10/11 12:45
    • good
    • 0

単純な文字列ならInStr関数でも検出できます。


InStr(被検索文字列, 検索文字列) → 0なら検索文字列を含まない。
正規表現を使う方法もあります。
Dim Reg
Set Reg = CreateObject("VBScript.RegExp")
Set Reg.Pattern = "きくけ"
Reg.Test(被検索文字列) → Falseなら検索文字列を含まない。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!