Так у меня есть текстовый файл, который кормит меня разделенные запятой данные, заключенные в двойные кавычки, например, так:RegEx раскол не дает ожидаемых результатов
string test = "\"foo\",\"bar\",\"1\",\"\",\"baz\"";
Я хочу, чтобы захватить все значения, первоначально я просто разделить на запятая, но я заметил, иногда вещи были запятые между кавычками, поэтому я изменил его вместо этого использовать регулярные выражения, чтобы просто вытащить все кавычки с очень простым регулярным выражением:
string pattern = "\"[^\"]*\"";
Использование regexpal это возвращает именно то, что я хочу, но по тем или иным причинам, когда я запускаю этот небольшой про грамм в C#, я получаю список всех запятых, вместо значений, которые меня действительно интересуют, я не совсем уверен, почему. Может ли кто-нибудь определить мою ошибку?
string test = "\"foo\",\"bar\",\"1\",\"\",\"baz\"";
string pattern = "\"[^\"]*\"";
string[] lines = Regex.Split(test, pattern); //Returns a list of commas in quotes
А, я вижу, это имеет смысл. Я полагаю, что на самом деле я хочу RegEx.Match или что-то еще, или уточню свой RegEx, чтобы фактически использовать разделитель, а не то, что я хочу сопоставить. Благодарю. –
ОК, получил его работу, также использовал этот вопрос http://stackoverflow.com/questions/11416191/how-to-convert-matchcollection-to-string-array для преобразования коллекции совпадений обратно в строковый массив, чтобы просто подключить его прямо туда, где был мой старый наивный код разделения. (Принят, когда это позволит мне, еще раз спасибо!). –