c# - 从字符串中查找并提取所有数字

标签 c# regex string numbers

<分区>

我有这样一个字符串:“你好,我今年 43 岁,我需要 2 个汉堡,每个 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”,result43.0。如何解析字符串以获得更多数字?

最佳答案

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

\d+(\.\d+)?

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

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

Here is an example .

关于c# - 从字符串中查找并提取所有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20423035/

相关文章:

c# - 如何缩放 Kinect 相机?

c# - 类型推断和继承

regex - 使用grep从shell脚本中的正则表达式中提取组

php - 匹配版本号模式的正则表达式

c# - 从 C# 到 VB6 的 Rijndael/AES

regex - 在 PowerShell/PowerCLI 中将前缀附加到字符串

c - 在简单的词法分析器中将字符作为字符串

java - 如何将字符串映射到 Java 中的函数?

.NET 正则表达式匹配不正确

c# - 检测用户何时从使用 EmailComposeTask 返回?