2015-04-06 3 views
-1

Допустим, что у меня есть URL, как http://google.com/index.php?first=asd&second=mnb&third=lkjРазбираем параметр внутри URL с помощью C#

Как я могу получить второе значение (mnb) с помощью C#?

+0

Windows Forms или Web Forms? Поместите некоторый код. –

+0

или asp.net ....? Каким бы ни был ответ, вы действительно должны просто Google что-то такое. Если у вас есть код, который не работает, вы должны показать его и объяснить, как он не работает. – tnw

+0

Это приложение MVC? – Minh

ответ

0

Для простой строки синтаксического анализа можно использовать метод расширения:

using System.Text.RegularExpressions; 

public class Test 
{ 
    public static void Main() 
    { 
     var value = "url".Between("second=", "&third"); 
    } 
} 

public static class Ext 
{ 
    static string Between(this string source, string left, string right) 
    { 
     return Regex.Match(
       source, 
       string.Format("{0}(.*){1}", left, right)) 
      .Groups[1].Value; 
    } 
} 

Однако подходы с URL разборе предложил в комментарии почти наверняка лучше.

Источник: Get string between two strings in a string

1

Вы можете использовать ParseQueryString метод из System.Web.HttpUtility класса.

Uri targetUri = new Uri("http://google.com/index.php?first=asd&second=mnb&third=lkj"); 
string first= HttpUtility.ParseQueryString(targetUri.Query).Get("first"); 
string second= HttpUtility.ParseQueryString(targetUri.Query).Get("second"); 

Найти больше здесь: https://msdn.microsoft.com/en-us/library/ms150046.aspx

0

Попробуйте это:

String URL = "http://google.com/index.php?first=asd&second=mnb&third=lkj"; 

UriBuilder UrlThing = new UriBuilder(URL); 

System.Collections.Specialized.NameValueCollection Args = HttpUtility.ParseQueryString(UrlThing.Query); 

String Second = Args["Second"]; 
Смежные вопросы