2015-02-19 2 views
0

Я работаю над проектом C#.Регулятор регулярного выражения

У меня есть данные, как так (в формате CSV)

error01="BRE126:Invalid token found.",error02="BRE103:Access has been denied.",error03="BRE102:User must be logged on., info01="some info",warn01="some warning" 

Я хочу, чтобы разобрать данные и генерировать список ошибок, информации и предупреждений.

Как будет выглядеть регулярное выражение, чтобы найти их? Есть ли лучший способ?

EDIT: Я знаю, что нужно делать, чтобы получить MatchCollection и работать с этим, мне действительно нужна помощь в выражении.

+0

Как насчет использования файла свойств вместо csv? Так что это будет выглядеть как 'code = description' – Rao

+0

К сожалению, эта часть не находится под моим контролем, мне представлены данные в формате csv от стороннего успокоительного api. – punkologist

+0

Хорошо, какие данные вам нужны или какие действия вам нужно предпринять? Будет ли число столбцов фиксировано по всем строкам? – Rao

ответ

1
var dict = Regex.Matches(text, @"(.+?)=\""(.+?)\""[, $]*") 
       .Cast<Match>() 
       .ToDictionary(m => m.Groups[1].Value, m => m.Groups[2].Value); 
+0

это хорошо, но в нем также есть запятые в совпадениях. – punkologist

+0

все в порядке, я могу просто использовать (. +?) = "(. +?)" и решить проблему. – punkologist

Смежные вопросы