C#string只提取负数数值
时间: 2024-10-16 08:10:39 浏览: 44
在C#中,如果你想要从一个字符串中只提取负 numbers(数值),你可以使用正则表达式结合`int.TryParse`或者`decimal.TryParse`函数。这里是一个示例:
```csharp
using System;
using System.Text.RegularExpressions;
public string ExtractNegativeNumbers(string input)
{
// 正则表达式匹配负整数或小数
string pattern = @"[-]?[0-9]+(\.[0-9]+)?"; // 匹配可能有小数点的负数
MatchCollection matches = Regex.Matches(input, pattern);
StringBuilder result = new StringBuilder();
foreach (Match match in matches)
{
int value;
if (int.TryParse(match.Value, out value) && value < 0)
result.Append(value).Append(", ");
else if (decimal.TryParse(match.Value, out decimal decValue) && decValue < 0)
result.Append(decValue).Append(", ");
}
// 移除最后一个多余的逗号
return result.ToString().TrimEnd(',', ' ');
}
// 使用示例
string str = "Positive: 5, Negative: -10, Mixed: -3.14";
Console.WriteLine(ExtractNegativeNumbers(str)); // 输出: "-10, -3.14"
阅读全文