Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用正则表达式的多个小数的泛型提取_C#_Regex_Vb.net - Fatal编程技术网

C# 使用正则表达式的多个小数的泛型提取

C# 使用正则表达式的多个小数的泛型提取,c#,regex,vb.net,C#,Regex,Vb.net,您好,如何从字符串中提取多个小数位数不同的小数? 我正在寻找一种通用方法,从以下字符串中提取3个数字 e、 g 这三个数字始终以“X”分隔,字符串始终以2个字符开头 谢谢 因为您有这样一个特定的模式,所以甚至不需要使用正则表达式。由于前两个字符可以忽略,并且所有数字都由“X”字符分隔,因此此C#代码应该可以做到这一点(当然,添加了适当的错误处理) 因为您有这样一个特定的模式,所以甚至不需要使用正则表达式。由于前两个字符可以忽略,并且所有数字都由“X”字符分隔,因此此C#代码应该可以做到这一点(当

您好,如何从字符串中提取多个小数位数不同的小数? 我正在寻找一种通用方法,从以下字符串中提取3个数字

e、 g

这三个数字始终以“X”分隔,字符串始终以2个字符开头


谢谢

因为您有这样一个特定的模式,所以甚至不需要使用正则表达式。由于前两个字符可以忽略,并且所有数字都由“X”字符分隔,因此此C#代码应该可以做到这一点(当然,添加了适当的错误处理)


因为您有这样一个特定的模式,所以甚至不需要使用正则表达式。由于前两个字符可以忽略,并且所有数字都由“X”字符分隔,因此此C#代码应该可以做到这一点(当然,添加了适当的错误处理)


我不得不否决这个问题,因为作者甚至没有提供示例代码(即,向我们展示他尝试了什么)。我不得不否决这个问题,因为作者甚至没有提供示例代码(即,向我们展示他尝试了什么)。太棒了!非常感谢!非常感谢你
CC77X1722X12 => 77,1722,12
PC77.5X10102X12.5 => 77.5, 10102, 12.5
XP60.25X0.333X12 => 60.25, 0.333, 12
public IEnumerable<decimal> ExtractNumbers(string s)
{                                                  // For s = "CC77X1722X12"
    string[] nums = s.Substring(2).Split('X');     // nums = ["77", "1722", "12"];
    return nums.Select(num => decimal.Parse(num)); // returns [77, 1722, 12]
}
public IEnumerable<decimal> ExtractNumbers(string s)
{
    string[] nums = s.Substring(2).Split('X');
    return nums
        .Select(num => {
                decimal d;
                if (decimal.Parse(num, out d))
                    return new {Number = d, Succeeded = true};
                return new {Number = 0, Succeeded = false};
            })
        .Filter(result => result.Succeeded)
        .Select(result => result.Number);
}