正则表达式只从String中获取NUMBER

时间:2011-01-25 10:16:38

标签: c# regex

我从XML中收到“7+”或“5+”或“+5”,并希望使用Regex从字符串中仅提取数字。 例如Regex.Match()函数

        stringThatHaveCharacters = stringThatHaveCharacters.Trim();
        Match m = Regex.Match(stringThatHaveCharacters, "WHAT I USE HERE");
        int number = Convert.ToInt32(m.Value);
        return number;

3 个答案:

答案 0 :(得分:110)

上面的答案很棒。如果您需要解析非连续字符串中的所有数字,那么以下内容可能会有所帮助:

string input = "1-205-330-2342";
string result = Regex.Replace(input, @"[^\d]", "");
Console.WriteLine(result); // >> 12053302342

答案 1 :(得分:66)

\d+

\d代表一个或多个数字,+。如果您想捕获负数,也可以使用-?\d+

请注意,作为字符串,它应在C#中表示为"\\d+"@"\d+"

答案 2 :(得分:4)

如果您只需要一位数,[0-9]\d 1 就足够了。如果您需要更多,请附加+


1语义略有不同,因为\d可能与任何使用十进制数字的脚本中的任何十进制数字相匹配。