获取2个字符串之间的字符串

时间:2012-11-04 06:48:08

标签: vb.net string parsing

我有以下字符串

sa=t&rct=j&q=&esrc=s&source=productsearch&cd=1&cad=rja&docid=10829621560421678006&ved=0CDEQ9gIwAA&url=http%3A%2F%2Fwww

我想解析这部分10829621560421678006

我正在考虑编写一个函数,该函数返回2个指定字符串之间的字符串,在这种情况下&docid=&ved=

任何建议或更好的解决方案?,请注意我不能使用拆分,因为字符串结构会不时有所不同,我对这个数字的引用就是那两个字符串&docid=&ved=

也可以使用regualr表达式吗?

4 个答案:

答案 0 :(得分:3)

您可以使用Strings.Split Method

Dim extracted As String = Split(Split(sourcestring, "&docid=")(1), "&ved=")(0)

答案 1 :(得分:1)

这个正则表达式非常简单有效。

docid=(.*?)&ved

结果:

$matches Array:
(
    [0] => Array
        (
            [0] => docid=10829621560421678006&ved
        )

    [1] => Array
        (
            [0] => 10829621560421678006
        )

)

答案 2 :(得分:1)

您可以尝试这样的事情: -

 Dim startIndex As Integer = temp.IndexOf("&docid=") + 20
 Dim endIndex As Integer = temp.IndexOf("&ved=", startIndex)
 Dim extraction As String = temp.Substring(startIndex, endIndex - startIndex).Trim

如果你想使用正则表达式,那么你可以试试这个: -

 docid=(.*?)&ved

答案 3 :(得分:1)

您可以像这样使用LINQ:

var docid = 
    text
        .Split('&')
        .Select(x => x.Split('='))
        .Where(x => x[0] == "docid")
        .Select(x => x[1])
        .First();