如何从某个位置提取字符串

时间:2011-11-03 16:59:21

标签: c# vb.net

我正在努力寻找字符串操作的解决方案 - 我试图在'='字符之后提取字符串元素的某个部分 - 比如说。

 dim s as string = "/mysite/secondary.aspx?id=1005" 

我试图在“=”之后获取字符串并且只是为了抓住1005.我尝试了indexof和split,但我不确定我哪里出错了。有什么帮助吗?

这就是我所做的:

 Dim lnk As String = "/mysite/secondary.aspx?id=1005"  
 Dim id As Long = lnk.IndexOf("=")   
 Dim part As String = lnk.Substring(id + 1, 4)

由于

4 个答案:

答案 0 :(得分:6)

尝试以下

Dim index = s.IndexOf("="C)
Dim value = s.Substring(index + 1)  

这会将“1005”放入value

答案 1 :(得分:5)

Dim tUriPath As String = "/mysite/secondary.aspx?id=1005"
Dim tURI As Uri = New Uri("dummy://example.com" & tUriPath)
Dim tIdValue As String = System.Web.HttpUtility.ParseQueryString(tUri.Query)("id")

答案 2 :(得分:1)

这是一个非常简单的例子。显然它依赖于非常具体的条件:

Dim afterEquals As String = s.Split("="c)(1)

你可能想要一些更健壮的东西(检查以确保从Split返回多个字符串等)。

答案 3 :(得分:0)

如果你用'='尝试string.Split,你将在数组的第一个元素上获得1005,在第0个位置获得/mysite/secondary.aspx?id=

但是,如果这只是来自http请求的常规URL。

你可能会Request.QueryString("id"),它会返回1005;

借用Boo的代码......

Dim tUriPath As String = "/mysite/secondary.aspx?id=1005"
Dim tURI As Uri = New Uri("dummy://example.com" & tUriPath)
Dim tIdValue As String = System.Web.HttpUtility.ParseQueryString(tUri.Query)

Dim theIntYouWant as String= System.Web.HttpUtility.ParseQueryString(tUri.Query)("id")