2

そのため、私は何年もの間、主に PHP 環境で正規表現を使用してきましたが、VB .NET スクリプト エンジン (VB の経験はありますが、それだけです) を使用する小さなプロジェクトに取り組んでおり、いくつかの実際の問題を抱えています。本当に基本的なこと。

HTML ファイルのコンテンツが読み込まれた変数があり、特定のタグの値を抽出したいと考えています。

例:

<span id="temp" class="up"><span class="up">76.4</span></span>

.NET ベースの正規表現の変更点を調べた結果、次のように思いつきました (後方参照 1 を使用すると、その数値を取得できます)。

<span id="temp" class="(?:up|down)"><span class="(?:|up|down)">([0-9]+\.[0-9]{1})</span> 

しかし、私はこれを機能させることができません。RegEx Hero サイトは正規表現を検証しているようなので、問題は私のコードにあると推測しています。私はネット上で多くの例をたどってきましたが、常に何らかのエラーが発生します。さらに悪いことに、メモ帳を使用してこのスクリプトを開発しています:p

その数値を抽出する VB .NET スクリプトの実際の例を教えてください。目標は、その HTML 変数内のすべてのテキストを数字だけに置き換えることです。

4

1 に答える 1

0

あなたの表現は正しいようです。追加するのは、番号の名前付きグループだけです。これを試して:

Dim input = "<span id=""temp"" class=""up""><span class=""up"">76.4</span></span>"
Dim regex = New Regex("<span id=""temp"" class=""(?:up|down)""><span class=""(?:|up|down)"">(?<number>[0-9]+\.[0-9]{1})</span>")
Dim number = regex.Match(input).Groups("number").Value

それはあなたを得るはずです76.4

そしてもう1つ-HTMLを解析するときは、正規表現の代わりにHTMLパーサーを使用する方が常に良いです。HtmlAgilityPackをお勧めします。

于 2012-11-30T09:00:07.477 に答える