我有一个字符串:" 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);
在此之后,resultString
是"43"并且result
是43.0
.如何解析字符串以获得更多数字?
包含小数的正则表达式需要更复杂一些:
\d+(\.\d+)?
然后你需要得到多个匹配:
MatchCollection mc = Regex.Matches(subjectString, "\\d+(\\.\\d+)?"); foreach (Match m in mc) { double d = double.Parse(m.Groups[0].Value); }
这是一个例子.