2011-06-16 52 views
0

我想將所有匹配集合到一個集合中,或者至少一個新的字符串與我的值由空格分隔。如何在C#中使用RegEx將所有匹配的字符串集合到一個集合中

var srcString = @"foo foo %%match1%%, foo %%match2%%, %%match3%% foo foo"; 

var output = Regex.Match(srcString, @"\%\%(.*)\%\%").Groups[1].Value; 

其中輸出,必須與「MATCH1」作爲元素「MATCH2」作爲下一個,等等,或至少類似「MATCH1 MATCH2 MATCH3」的集合。

謝謝!

回答

0

這應該做的伎倆

var srcString = @"foo foo %%match1%%, foo %%match2%%, %%match3%% foo foo"; 

IEnumberable<string> results = Regex.Matches(srcString, @"\%\%(.*?)\%\%").Cast<Match>().Select(match => match.Value); 
+0

謝謝!你很有幫助 – Pato 2011-06-17 12:37:55

0

試試這個:

var srcString = @"foo foo %%match1%%, foo %%match2%%, %%match3%% foo foo"; 
      var match = Regex.Match(srcString, @"%%([^%]+)%%"); 
      while (match.Success) 
      { 
       Console.WriteLine(match.Groups[1].Value); 
       match = match.NextMatch(); 
      } 

輸出:

match1 
match2 
match3 
+0

謝謝!你非常有幫助! – Pato 2011-06-17 12:37:47

相關問題