查找并提取String中的所有数字

Net*_*ire 3 c# regex string numbers

我有一个字符串:" Hello I'm 43 years old, I need 2 burgers each for 1.99$".我需要解析它并获取其中的所有数字double.所以函数应该返回一个值数组,如:43, 2, 1.99.在C++中我应该自己编写,但C#有Regex,我认为它可能在这里有用:

String subjectString = "Hello I'm 43 years old, I need 2 burgers each for 1.99$";
resultString = Regex.Match(subjectString, @"\d+").Value;
double result = double.Parse(resultString);
Run Code Online (Sandbox Code Playgroud)

在此之后,resultString是"43"并且result43.0.如何解析字符串以获得更多数字?

Cod*_*gue 5

包含小数的正则表达式需要更复杂一些:

\d+(\.\d+)?
Run Code Online (Sandbox Code Playgroud)

然后你需要得到多个匹配:

MatchCollection mc = Regex.Matches(subjectString, "\\d+(\\.\\d+)?");
foreach (Match m in mc)
{
    double d = double.Parse(m.Groups[0].Value);
}
Run Code Online (Sandbox Code Playgroud)

这是一个例子.