Регулярное выражение в C # разобрать в двойной массив - PullRequest
1 голос
/ 26 декабря 2010

Я не очень хорош в регулярных выражениях.У меня есть

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

Как лучше всего преобразовать его в двойной []?

Ответы [ 2 ]

7 голосов
/ 26 декабря 2010
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);

Regex довольно дорог в использовании, и я бы не рекомендовал его в этом случае.

0 голосов
/ 26 декабря 2010

Вы можете использовать регулярное выражение с телом:

\ d + \. \ D *

Регулярное выражение будет соответствовать одной или нескольким цифрам, затем одной точке, затем любому количеству цифр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...