【发布时间】:2013-05-11 02:42:36
【问题描述】:
我有一个包含 URL 的字符串,即.../details?fname=peter&lname=smith&...
有没有办法用另一个替换 URL 中的 lname 参数值?请记住,lname 的值并不总是相同的。
【问题讨论】:
-
你的意思是说。您需要始终替换第二个参数值吗?
我有一个包含 URL 的字符串,即.../details?fname=peter&lname=smith&...
有没有办法用另一个替换 URL 中的 lname 参数值?请记住,lname 的值并不总是相同的。
【问题讨论】:
试试这个
使用返回 NameValueCollection 的 System.Web.HttpUtility 类的静态 ParseQueryString() 方法。
string url = "http://example.com/file?a=1&b=2&c=string%20param";
string querystring = url.Substring(url.IndexOf('?'));
System.Collections.Specialized.NameValueCollection parameters =
System.Web.HttpUtility.ParseQueryString(querystring);
【讨论】:
您可以使用字符串替换。例如,如果您需要构建自定义 url,您可以执行以下操作:
string myURL = ".../details?fname=peter&lname=#lname#";
string myValue ="finalvalue";
string FinalURL = myURL.Replace("#lname#,myValue);
【讨论】:
你可以这样做:
Dim sAux() As String = sURL.Split(New Char() {"?"c, "&"c})
Dim sParams() As String
For Each elem As String In sAux
sParams = elem.Split("="c)
If sParams(0).Equales("lname", StringComparison.CurrentCultureIgnoreCase) Then
sUrl = sUrl.Replace("lname=" & sParams(1), "lname=" & sNewValue)
End If
Next
或者简单地说:
Dim index As Integer = sUrl.IndexOf("lname=")
Dim auxIndex As Integer = sUlr.IndexOf("&", index + 1)
Dim sAux As String
If index >= 0 Then
If auxIndex < 0 Then
sAux = sUrl.Substring(index)
Else
sAux = sUrl.SubString(index, sUrl.Length - auxIndex)
End If
sUrl = sUrl.Replace(sAux, "lname=" & sNewValue)
End If
【讨论】: