Я хочу проанализировать текстовый формат файла, имеющий немного необычный синтаксис.Вот несколько примеров правильных строк:
<region>sample=piano C3.wav key=48 ampeg_release=0.7 // a comment here
<region>key = 49 sample = piano Db3.wav
<region>
group=1
key = 48
sample = piano D3.ogg
Я думаю, мне было бы слишком сложно придумать регулярное выражение, которое имеет смысл, но мне интересно, есть ли хороший способ токенизацииэтот тип ввода без написания моего собственного парсера?т.е. я хотел бы что-то, что читает вышеупомянутый ввод и выплевывает поток 'токенов', например, вывод для начала моего примера формата был бы что-то вроде:
new Region(), new Sample("piano C3.wav"), new Key("48"), new AmpegRelease("0.7"), new Region()
Есть ли хорошийбиблиотека / учебник, который укажет мне правильное направление для элегантного способа реализации этого?
Обновление: Я пробовал это с Ирония , но причудысинтаксис, который мне нужно проанализировать (в частности, тот факт, что данные, следующие за образцом, могут содержать пробел), заставил их предположить, что мне лучше написать собственный код на основе String.Split.Смотрите обсуждение здесь .