我有以下字符串
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表达式吗?
答案 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();