使用正则表达式获取LINK ID需要帮助吗?

时间:2011-11-19 20:51:59

标签: vb.net url expression

我得到了这个 url ,例如“http://www.yellowpages.com/manhattan-beach-ca/mip/marriott-manhattan-beach-4933923?lid=185795402"

我希望得到最后一位数字,其余的可以是任何内容。

我需要这样的格式“http://www.yellowpages.com/anything .... lid = 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

提前谢谢

2 个答案:

答案 0 :(得分: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之后的部分? (查询字符串),然后将其拆分为=符号,获取结果数组的第二个元素(值)。

此外,如果查询字符串具有多个名称值对,则它们将由&分隔,因此您需要首先拆分&符号(&),然后等号。

答案 1 :(得分: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)