токенизировать строку в массив строк - PullRequest
1 голос
/ 28 декабря 2011

Я хотел бы разбить строки вроде 2x3y5z, 4y, 5x6y, 7x4z на отдельные строки:

 "2x3y5z" = { "2x", "3y", "5z" }
 "7x4z"= { "7x", "4z" }

Мое текущее решение включает Substring и Replaceи выглядит довольно запутанным.Можно ли сделать это в RegEx гораздо проще?

Ответы [ 2 ]

3 голосов
/ 28 декабря 2011

Каковы правила разделения строки?В следующем регулярном выражении предполагается, что у вас есть число от 0 до 9 и после этого символа от a до z.

        string pattern = @"[0-9]{1}[a-z]{1}";            
        var regexp = new System.Text.RegularExpressions.Regex(pattern);

        var matches = regexp.Matches("2x3y5z");            

        foreach (var match in matches)
        {
            Debug.WriteLine(match);
        }
0 голосов
/ 28 декабря 2011

При условии, что вы хотите иметь группы, состоящие из цифры, а затем строчной буквы, циклически перебирайте ввод с помощью \d[a-z] и захватывайте соответствующий текст.

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