2012-07-04 97 views
-2

我想从这个字符串C#和正则表达式

?connect:100/username:example/ 

我在谷歌搜索得到100example,但无法找到一些有用的正则表达式模式形成我的解决方案

请帮

+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)通话,如果你有字符串后面没有开始?和尾随/