2011-11-19 81 views
0

我得到這個網址例如「http://www.yellowpages.com/manhattan-beach-ca/mip/marriott-manhattan-beach-4933923?lid=185795402」需要使用正則表達式獲取LINK ID的幫助?

我想要得到的最後一位數字其餘的可以是任何東西。

我需要這樣的格式的「http://www.yellowpages.com/anything ....蓋= randomdigitnumbers」或者只要我得到這些數字。

我的知識很差這個正則表達式的東西,所以請大家幫幫我。

以下沒有工作

Dim r As New System.Text.RegularExpressions.Regex("http://www.yellowpages.com/.*lid=d*", RegexOptions.IgnoreCase) 
    Dim m As Match = r.Match(txt) 
    If (m.Success) Then 
     Dim int1 = m.Groups(1) 
     MsgBox("(" + int1.ToString() + ")" + "") 
    End If 

預先感謝您

+0

這將會是很容易直接使用字符串函數來做到這一點。 – Tim

回答

1

使用正則表達式的,這是一個有點大材小用,IMO。

你可以使用字符串函數完成同樣的事情:

Dim url As String = "http://www.yellowpages.com/manhattan-beach-ca/mip/marriott-manhattan-beach-4933923?lid=185795402" 

Dim queryString As String = url.SubString(url.IndexOf("?"), url.Length - url.IndexOF("?")) 

Dim nameValuePairs As String() = queryString.Split("=") 

Dim lid As String = nameValuePairs(1) 

這是從我的頭頂,所以你可能需要調整它一下。基本概念是在URL之後的部分URL? (查詢字符串),然後將其拆分到=符號,獲取結果數組的第二個元素(值)。另外,如果查詢字符串有多個名稱值對,則它們將被&分開,因此您需要首先拆分&符號(&),然後等號。

+0

哦,對!剛纔那種做法也是一樣的。但是感謝 – user1055720

1

只要找到lid=,之後得到的一切:

Dim url As String = "http://www.yellowpages.com/manhattan-beach-ca/mip/marriott-manhattan-beach-4933923?lid=185795402" 
Dim lidIndex As Integer = url.IndexOf("lid=") + "lid=".Length 
Dim lid As Integer = url.Substring(lidIndex) 
+0

+ +1對於比我的更短的解決方案 - 儘管如果查詢字符串中有多個參數,我的解決方案會遇到同樣的問題。 – Tim

+0

謝謝我認爲我做了同樣的事情。雖然我真的想通過正則表達式來獲得它,但我想我會在其他時間得到它 – user1055720