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

Muh*_*nan 58 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;
Run Code Online (Sandbox Code Playgroud)

blu*_*oft 114

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

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


Kob*_*obi 69

\d+

\d代表+一个或多个任何数字.如果你想捕获负数也可以使用-?\d+.

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


Joe*_*oey 5

无论是[0-9]\d1就足够了,如果你只需要一个单一的数字。+如果您需要更多,请追加。


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