正则表达式:查找字符串中的所有数字

时间:2011-09-27 15:56:56

标签: c# regex

我想获得这样的字符串的所有数字:

"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);
    }
}

你能帮助我获得好的模式吗?

非常感谢

好的,好的代码是:

谢谢Daniel

我正在使用此代码:

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

2 个答案:

答案 0 :(得分:3)

你想做Matches。您将只有一个具有该模式的组。

答案 1 :(得分:3)

如果你没有停留在正则表达式上,那么更直接的方法是:

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