2011-09-27 135 views
0

我想獲得一個像這樣的字符串的所有數字:正則表達式:找到字符串中的所有數字

"0" => Groups = "0" 
"1 2-3" => Groups = "1", "2", "3" 
"45i6" => Groups = "4", "5", "6" 

我使用這個代碼:

var pattern = @"(\d)"; 
var m = System.Text.RegularExpressions.Regex.Match(value, pattern); 
if(m.Success) 
{ 
    foreach (var gp in m.Groups) 
    { 
     Console.WriteLine(gp); 
    } 
} 

你能幫助我獲得良好格局嗎?

非常感謝

OK,好的代碼:

感謝丹尼爾

我使用這個代碼:

var pattern = @"(\d)"; 
var ms = System.Text.RegularExpressions.Regex.Matches(value, pattern); 
if(ms.Count > 0) 
{ 
    foreach (var m in ms) 
    { 
     Console.WriteLine(m); 
    } 
} 
+6

什麼是你的代碼錯誤? – qJake

回答

3

如果不是停留在正則表達式,一個更簡單的方法是:

var digits = someString.Where(c => char.IsDigit(c)).ToArray(); 
+3

或甚至:'someString.Where(Char.IsDigit).ToArray();' – soniiic

+0

@soniiic好的通話 - 我總是忘記這一點。 ReSharper的不斷罵我的那一個。 –

3

你想要做Matches。您只需一組與該模式。

+0

由於丹尼爾 我正在使用此代碼: VAR圖案= @ 「(\ d)」; VAR MS = System.Text.RegularExpressions.Regex.Matches(值,圖案); (ms.Count> 0) foreach(var m,ms) { Console.WriteLine(m); } } – Bob

相關問題