2012-11-29 62 views
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> 

但是,我無法得到這個工作。正義英雄網站似乎驗證正則表達式,所以我猜測問題是與我的代碼。我在網上跟隨了很多例子,但總是遇到某種錯誤。更糟糕的是,我正在使用記事本開發此腳本:p

有人可以請我提供一個可用的VB .NET腳本示例來提取該數字嗎?目標是用該數字替換該HTML變量中的所有文本。

+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

還有一件事 - 當解析HTML時,它總是更好的to use HTML parser instead of regexes。我建議HtmlAgilityPack

+0

謝謝,這個問題是我的代碼,我想我看了太多的例子,最後得到了Frankenstein代碼。你的例子很簡單,並且幫助解釋瞭如何訪問這些數據。我會投你一票,但沒有足夠的代表。 –