提取字符串中的确切字符串并附加

时间:2015-07-09 03:59:58

标签: c#

我有以下格式的字符串:

http://www.somesomesome.com/ShowProduct.aspx?ID=232
http://www.somesomesome.com/showproduct.aspx?ID=233
http://www.somesomesome.com/showproduct.aspx?ID=272
http://www.somesomesome.com/ShowProduct.aspx?ID=253

我想提取“ShowProduct.aspx?ID = 232”( case-insentive ,此处可以是232或233或任何其他数字)

并将其附加到另一个字符串"http://www.notthiswebsite.com/"

并制作

http://www.notthiswebsite.com/ShowProduct.aspx?ID=232

我如何在C#中完成?

5 个答案:

答案 0 :(得分:1)

您可以使用此

  var url = "http://www.somesomesome.com/ShowProduct.aspx?ID=232"; 
  var newHost = "www.notthiswebsite.com";
  var finalUrl = url .Replace(new Uri(url).Host, newHost);

答案 1 :(得分:0)

你可以试试这个:

%9%9

现在你可以将pathQuery添加到你想要的任何字符串

答案 2 :(得分:0)

您可以使用substring获取最后一部分。

string url = "http://www.somesomesome.com/ShowProduct.aspx?ID=232";
url = url.Substring(url.LastIndexOf(@"/") + 1);

要获得这个数字,你可以做到这一点

string Id = url.Substring(url.LastIndexOf("=") + 1);

如果您在页面加载时收到此信息,则可以使用QueryString

提取数字
string Id="";
if (Request.QueryString["ID"] != null)
   Id = Request.QueryString["ID"].ToString();

答案 3 :(得分:0)

如果网址格式一直相同,您可以直接从28索引Substring

string input = "http://www.somesomesome.com/ShowProduct.aspx?ID=232";
string result = "http://www.notthiswebsite.com/" + input.Substring(28);

如果长度不同,我们需要找到ShowProduct部分开始的位置。为此,我们可以使用LastIndexOf/字符来查找从哪里开始。顾名思义,此方法将从字符串的末尾开始并备份,直到找到符号。

之后,我们必须将索引值增加1,因为我们要在S而不是/本身上启动子字符串:

string input = "http://www.somesomesome.com/ShowProduct.aspx?ID=232";
string result = "http://www.notthiswebsite.com/" + input.Substring(input.LastIndexOf('/') + 1);

答案 4 :(得分:0)

string s1 = "http://www.somesomesome.com/ShowProduct.aspx?ID=232";
string str1 = s1.Substring(s1.LastIndexOf('/') + 1); //ShowProduct.aspx?ID=232
string str2 = "http://www.notthiswebsite.com/";
string result = str2 + str1;

您可以使用此