2015-07-09 2 views
0

У меня есть следующая строка формата:Извлечь точную строку в строку и добавить

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?» (случай-Инсентив и здесь он может быть 232 или 233 или любое другое число)

и добавить его в другую строку "http://www.notthiswebsite.com/"

и сделать его

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

Как это сделать на C#?

+0

В чем особая проблема, с которой вы сталкиваетесь? Вы пытались? –

+0

Я знаю, как использовать IndexOf() searchWithinThis.IndexOf (searchForThis); , но я не знаю, как извлечь строку после обнаружения индекса. Плюс номер в конце строки, как мне сделать общий поиск? – CuriousDev

ответ

0

Вы можете попробовать это:

var uriString = "http://www.somesomesome.com/ShowProduct.aspx?ID=232"; 
var uri = new Uri(uriString); 
var pathQuery = uri.PathAndQuery; //ShowProduct.aspx?ID=232 

Теперь вы можете плюс pathQuery к любой строке, которую вы хотите

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(); 
0

Если URL всегда в том же формате, вы можете получить Substring, который начинается с индекса 28 напрямую:

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

Если длина варьируется, нам нужно будет найти, где начинается ShowProduct. Для этого мы можем использовать LastIndexOf с символом /, чтобы найти, с чего начать. Как следует из названия, этот метод будет начинаться с конца строки и делать резервную копию до тех пор, пока не найдет символ.

После этого, мы должны увеличивать это значение индекса на единицу, потому что мы хотим, чтобы начать нашу подстроку на S и не сам /:

string input = "http://www.somesomesome.com/ShowProduct.aspx?ID=232"; 
string result = "http://www.notthiswebsite.com/" + input.Substring(input.LastIndexOf('/') + 1); 
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); 
+0

отличный ответ М. Насир. Благодарю. – CuriousDev

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; 

Вы можете использовать это

Смежные вопросы