正则表达式只从字符串获取数字

我从 XML 中接收到“7 +”或“5 +”或“ + 5”,并希望只使用正则表达式从字符串中提取数字。 正则表达式 Match ()函数

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

\d+

\d表示任意数字,+表示一个或多个数字。如果你也想捕捉负数,你可以使用 -?\d+

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

如果您只需要一个数字,[0-9]\d1应该足够了。如果您需要更多,请附加 +


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

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

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