正则expression式只能从string获得NUMBER

我从XML中接收“7+”或“5+”或“+5”,并希望仅使用正则expression式从string中提取数字。 例如Regex.Match()函数

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

\d+

\d代表任何数字, +代表一个或多个。 如果你想抓住负数,你可以使用-?\d+

请注意,作为string,它应该在C#中表示为"\\d+" ,或者@"\d+"

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

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

如果只需要一个数字, [0-9]\d 1就足够了。 追加+如果你需要更多。


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