Токенизация строк / стек регулярных выражений / проблема очереди - "ABC [YXYZ] [123] SomeText More Text [Split]" - PullRequest
0 голосов
/ 24 октября 2010

как я могу разбить их на массив элементов, то есть массив [0] = "ABC", массив [1] = "YXYZ", массив [2] = "" массив [3] = "123" ...

Гуру регулярных выражений!Помогите!

Не заботьтесь о производительности, только краткость кода, т. Е. Изящный нечитаемый код вполне подходит.

ДОПОЛНИТЕЛЬНЫЙ КРЕДИТ:

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

есть идеи?

1 Ответ

0 голосов
/ 24 октября 2010

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

Использование функции разделения строк:

       Dictionary <string, bool> theDict = new Dictionary<string,bool> (); 
       string input= @"abc [xyz] [123] asdasd";
       string[] a2;
       string[] a1 = input.Split('[');
       for (int i = 0; i< a1.Length; i++)
       {
           a2 = a1[i].Split(']');
           if (a2.Length == 1)
               theDict.Add(a2[0], false);  // no special formatting
           else
           {
               theDict.Add(a2[0], true);   // special formatting

               theDict.Add(a2[1], false);
           }
       }

даст вам результат, о котором вы просили.

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