Если вы управляете строкой, попробуйте следующее:
var str = `
<link href="http://b2b.ap/css/jquery-ui/jquery-ui.css" rel="stylesheet">
`;
var pattern = /<link.+?href=\"(.+\.css)\".*?>/;
var match = str.match(pattern);
console.log(match[1]);
Используйте статичный ParseQueryString
метод System.Web.HttpUtility
класс, который возвращается NameValueCollection
.
Uri myUri = new Uri("http://www.example.com?param1=good¶m2=bad");
string param1 = HttpUtility.ParseQueryString(myUri.Query).Get("param1");
документация Проверки в http://msdn.microsoft.com/en-us/library/ms150046.aspx
Используйте Отражатель.NET для просмотра FillFromString
метод System.Web.HttpValueCollection
. Это дает Вам код, который ASP.NET использует для заполнения Request.QueryString
набор.
Похож на Вас, должен циклично выполниться по значениям myUri.Query
и проанализировать его оттуда.
string desiredValue;
foreach(string item in myUri.Query.Split('&'))
{
string[] parts = item.Replace('?', '').Split('=');
if(parts[0] == "desiredKey")
{
desiredValue = parts[1];
break;
}
}
я не использовал бы этот код, не тестируя его на наборе уродливых URL как бы то ни было. Это могло бы повредиться на некоторых/всех из них:
hello.html?
hello.html?valuelesskey
hello.html?key=value=hi
hello.html?hi=value?&b=c
Это, вероятно, что Вы хотите
var uri = new Uri("http://domain.test/Default.aspx?var1=true&var2=test&var3=3");
var query = HttpUtility.ParseQueryString(uri.Query);
var var2 = query.Get("var2");
Для тех, кто хочет перебрать все строки запроса из строки
foreach (var item in new Uri(urlString).Query.TrimStart('?').Split('&'))
{
var subStrings = item.Split('=');
var key = subStrings[0];
var value = subStrings[1];
// do something with values
}