Я анализирую строки последовательности команд, и мне нужно преобразовать каждую строку в строку [], которая будет содержать токены команд в порядке их чтения.
Причина заключается в том, что эти последовательности хранятся в базе данных, чтобы дать команду клиенту протокола выполнить определенную предписанную последовательность для отдельных удаленных приложений. В этих строках есть специальные токены, которые мне нужно добавить в строку [] самостоятельно, потому что они не представляют передаваемые данные; вместо этого они указывают блокирующие паузы.
Последовательности не содержат разделителей. В любой последовательности команд может быть найдено любое количество специальных токенов, поэтому я не могу просто проанализировать строки с помощью регулярных выражений. Кроме того, все эти специальные команды в последовательности заключены в ${}
Вот пример данных, которые мне нужно проанализировать в токены (P1 указывает на паузу блокировки на одну секунду):
"some data to transmit${P1}more data here"
Результирующий массив должен выглядеть следующим образом:
{ "some data to transmit", "${P1}", "more data here" }
Я думаю, что LINQ может помочь с этим, но я не уверен. Единственное решение, которое я могу придумать, - это циклически проходить по каждому символу до тех пор, пока не будет найден $
, а затем определить, доступна ли специальная команда паузы, а затем проанализировать последовательность оттуда с помощью индексов.