gpt4 book ai didi

c# - 在以 "+"或 "-"开头的字符串中查找十进制数

转载 作者:行者123 更新时间:2023-11-30 20:53:57 27 4
gpt4 key购买 nike

我想从我从远程服务接收到的字符串中获取一些十进制数。

我的问题是我只希望字符串中的小数点以“+”或“-”为前缀。

这是我目前的解决方案:

string text = "+123.23 foo 456.34 bar -789.56";
List<string> decimals = Regex.Split(text, @"[^0-9\.]+").Where(
c => c != "." && c.Trim() != string.Empty).ToList();

foreach (var str in decimals)
{
Console.WriteLine(str);
}

// Output:
//
// 123.23
// 456.34
// 789.56
//
// Desired output:
//
// 123.23
// -789.56

由于我不太了解正则表达式,所以我需要一些更合适的模式方面的帮助。

最佳答案

我从拆分非数字切换到匹配数字。这会得到你想要的结果:

string text = "+123.23 foo 456.34 bar -789.56";
List<string> decimals = Regex.Matches(text, @"[+\-][0-9]+(\.[0-9]+)?")
.Cast<Match>().Select(m => m.Value).ToList();

foreach (var str in decimals)
{
Console.WriteLine(decimal.Parse(str));
}

关于c# - 在以 "+"或 "-"开头的字符串中查找十进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19528012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com