我从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;
答案 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
可能与任何使用十进制数字的脚本中的任何十进制数字相匹配。