正则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
可能会匹配任何使用十进制数字的脚本中的任何十进制数字。