2013-07-25 18 views
0

標題可能不準確,但我想不出是否有更好的解釋方法。VB.NET - 選擇文字直到某個字符

我正在爲一個客戶端項目工作,該客戶端利用來自多個不同網站的HTML源代碼。

目前,源代碼已顯示,但我需要能夠從源中選擇第一個URL,然後將其顯示在Label上。

我的問題是。 VB文本框不顯示超鏈接,並且(據我所知)沒有任何工具從字符串中選取超鏈接。

我需要能夠從多行文本框中獲得第一個超鏈接。鏈接通常可能很長,通常不會以.com或.net或以往任何結尾結尾,它只是一個域,然後是數字和字母的長組合。我需要能夠提取此網址。它被封裝在一個HTML框架中,鏈接將根據它明顯訪問的網站而改變,所以我認爲我真正需要的是一種方法來提取HTML框架中的鏈接,然後將多餘的HTML去除留下原始鏈接。

我試圖盡我所能解釋這一點;讓我知道你是否需要澄清。

+0

所以你需要使用Regex從字符串中提取鏈接,是嗎? – Renan

+2

你可能會爲這個簡單的例子使用正則表達式,但你應該查看[HTML Agility Pack](http://htmlagilitypack.codeplex.com/)。 – canon

+0

@canon:這個問題並不清楚HTML源代碼是否被確認。特別是,*源頭中的第一個URL可能包含純文本的非鏈接URL(因爲它們有時出現在不允許鏈接的論壇中)。 –

回答

0

雖然你的問題是不清楚,但你幾乎可以使用HtmlAgilityPack或者僅使用正則表達式[正則表達式]爲了回報你想從一個頁面

' The input string. 
Dim value As String = "/content/alternate-1.aspx" 

' Invoke the Match method. 
Dim m As Match = Regex.Match(value, _ 
       "content/([A-Za-z0-9\-]+)\.aspx$", _ 
       RegexOptions.IgnoreCase) 

' If successful, write the group. 
If (m.Success) Then 
    Dim key As String = m.Groups(1).Value 
    Console.WriteLine(key) 
End If 
相關問題