C#中的正则表达式解析成双数组

时间:2010-12-26 00:25:54

标签: c# regex arrays parsing

我不喜欢正则表达式。 我有

string rgba = "[0.123,0.223,0.2,1]";

将它转换为double []的最佳方法是什么?

2 个答案:

答案 0 :(得分:7)

rgba.Replace("]", String.Empty)
    .Replace("[", String.Empty)
    .Split(',')
    .Select(double.Parse)
    .ToArray();

或者,如果您知道它始终以[开头并以]结尾

rgba.Substring(1, rgba.Length - 2)
    .Split(',')
    .Select(double.Parse)
    .ToArray();

如果你不喜欢LINQ

Array.ConvertAll(rgba.Substring(1, rgba.Length - 2).Split(','), double.Parse);

使用正则表达式非常昂贵,在这种情况下我不推荐使用它。

答案 1 :(得分:0)

你可以在正文中使用正则表达式:

  

\ d + \。\ d *

正则表达式将匹配一个或多个数字,然后是一个点,然后是任意数量的数字。