Анализирам низове от командна последователност и трябва да конвертирам всеки низ в низ [], който ще съдържа командни токени в реда, в който са прочетени.
Причината е, че тези последователности се съхраняват в база данни, за да инструктират клиента на протокола да изпълни определена предписана последователност за отделни отдалечени приложения. В тези низове има специални токени, които трябва да добавя към низа [] сами по себе си, защото те не представляват данни, които се предават; вместо това те показват блокиращи паузи.
Последователностите не съдържат разделители. Може да има произволно количество специални жетони, намерени навсякъде в командна последователност, поради което не мога просто да анализирам низовете с регулярен израз. Освен това всички тези специални команди в последователността са обвити с ${}
Ето пример за данните, които трябва да анализирам в токени (P1 показва блокираща пауза за една секунда):
"some data to transmit${P1}more data here"
Полученият масив трябва да изглежда така:
{ "some data to transmit", "${P1}", "more data here" }
Мисля, че LINQ може да помогне с това, но не съм толкова сигурен. Единственото решение, което мога да измисля, е да преминавам през всеки знак, докато се намери $
и след това да открия дали е налична специална команда за пауза и след това да анализирам последователността от там с помощта на индекси.
Regex.Split
-- можете ли да обясните по-подробно? - person Gabe   schedule 24.08.2011Regex.Split(str, @"(\${.*?})")
няма да работи? - person Gabe   schedule 24.08.2011