2012-07-04 4 views
-2

Я хочу, чтобы получить 100 и example из этой строкиC# и регулярное выражение

?connect:100/username:example/ 

я искал в гугле, но не может найти некоторые полезные регулярные выражения формируют мое решение

Пожалуйста, помогите

+0

Вы можете разделить на '/' сначала, а затем на::. –

ответ

1
try { 
    Regex RegexObj = new Regex(":(?<Number>\\d+)/.+?:(?<Text>\\w+)/"); 
    Match MatchResults = RegexObj.Match(SubjectString); 
    while (MatchResults.Success) { 
     for (int i = 1; i < MatchResults.Groups.Count; i++) { 
      Group GroupObj = MatchResults.Groups[i]; 
      if (GroupObj.Success) { 

      } 
     } 
     MatchResults = MatchResults.NextMatch(); 
    } 
} catch (ArgumentException ex) { 
    // Syntax error in the regular expression 
} 
0

Это регулярное выражение:

\?connect:([0-9]+)/username:([^/]*)/ 
0

Вам не нужно использовать регулярное выражение для этого использовать Linq:

var url = "?connect:100/username:example/"; 
var data = url.Substring(1, url.Length-2).Split('/') 
             .Select(x => x.Split(':')) 
             .ToDictionary(x => x[0], x => x[1]); 

Console.WriteLine(data["connect"]); // 100 
Console.WriteLine(data["username"]); // example 

Вы можете удалить SubString(1, url.Length-2) вызов, если вы получили строку обратно без стартового ? и задней /.

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