У меня есть файл CSV, и некоторые из полей пустые.Perl regex, значение вставки между запятыми
Примеры данных
ItemA,5,4,3,2,1
ItemB,7,,,2,4
ItemC,,,,2,
ItemD,,3,,,
Я хотел бы передать Perl-один лайнер над файлом, который будет вставить строку, скажем, NULL между каждой запятой, или после последней запятой, если значение не существует после Это.
так после того, как регулярное выражение, данные должны выглядеть следующим образом:
ItemA,5,4,3,2,1
ItemB,7,NULL,NULL,2,4
ItemC,NULL,NULL,NULL,2,NULL
ItemD,NULL,3,NULL,NULL,NULL
Я не знаю, как создать это регулярное выражение, помощь приветствуется. Спасибо.
OP запросил регулярное выражение perl oneliner, вы говорите, что не будете использовать регулярное выражение, по какой-либо причине? – outlyer
@outlyer Это просто мое личное мнение. Разбор csv-файла с использованием regex никогда не является хорошим выбором для начала. Решение может быть коротким, но может нарушаться в нечетных вариантах использования. –
Согласованные, регулярные выражения не являются хорошим выбором для CSV, хотя ваше альтернативное решение с 'split' также потерпит неудачу в некоторых случаях использования.'Text :: ParseWords' выглядит намного более надежным. – outlyer