1

ナビゲートしているhtmlページのテキストを取得したいのですが、それはプログラムのバージョン番号です

"(\d\.\d\.\d\.\d)" The regex code.

このコマンドを webBrowser1_DocumentCompleted で実行したい

このようなもの

文字列 html = webBrowser1.Document.Body.InnerText;

            // scrape keywords
            version = Regex.Match(html, @"""(\\d\\.\\d\\.\\d\\.\\d)""",

RegexOptions.IgnoreCase).Groups[0].Value;

うまくいかないようです。(私が見つけようとしているテキストは、本文にも指定された場所にもありません。html コード全体を取得して、そこで見つける必要があります)

これが機能していないのは、HTMLテキストを取得する方法であることを確認できます.Webブラウザのテキスト全体が必要なだけで、正規表現を使用する必要があるため、別の方法が必要です(正規表現はうまく機能すると思います)

4

2 に答える 2

3

@"(\d\.\d\.\d\.\d)"は、HTML 内のどこにある場合でも、バージョン番号全体に一致して取得する必要があります。

于 2012-10-18T16:16:48.290 に答える
2

この正規表現\d\.?は、次の HTML のバージョン番号と一致します。

<html>
<body>
    <span>3.4.2.6</span>
</body>
</html>

4 つの一致が返されるため、これを使用する場合は、個々のグループではなく、一致全体を取得する必要があることに注意してください。

したがって、次のように使用できます。

var version = RegEx.Match(html, @"\d\.?").Value;

より具体的な別の可能な正規表現は((\d\.){3}\d{1}). この RegEx は、次の文字列で特定のバージョン番号を 2 回キャプチャします。HTML か JavaScript かは関係ありません。しかし、それは無視し3.4.2ます。

<html> 
<body> 
    <span>3.4.2.6</span> 
    3.4.2
</body> 
</html> 

function(){
    var test = "something";
    var version = "3.4.2.6"
}

コントロールが現在オンになっている Web ページのテキストを取得するには、イベント ハンドラーWebBrowserで次のコードを試してください。DocumentCompleted

var html = webBrowser1.DocumentText;
于 2012-10-18T16:10:45.630 に答える