1

У меня есть файл .csv в Notepad++, который содержит такие данные:

1-6-2018,"(101)","","Sale",-862.96,,
"(Sale)",,837.96,
,"Diesel",12.000 Ltr,69.83/Ltr,837.96,
"Sales @ 5%",,23.80,
,"Polishing Cloth",1 Pcs,23.80/Pcs,23.80,
"CGST @ 2.5%",,0.60,
"SGST @ 2.5%",,0.60,
"(No. :16532)",
1-6-2018,"(149)","","Sale",-3212.18,,
"Sales(Sale)",,3212.18,
,"Diesel",46.000 Ltr,69.83/Ltr,3212.18,
"(No. :16533)",
// and many more

Как я могу использовать поиск и замену (или любой другой метод) в Notepad++ для объединения всех строк, которые не начинаются с даты, чтобы конечный результат выглядел следующим образом?

1-6-2018,"(101)","","Sale",-862.96,,"(Sale)",,837.96,,"Diesel",12.000 Ltr,69.83/Ltr,837.96,"Sales @ 5%",,23.80,,"Polishing Cloth",1 Pcs,23.80/Pcs,23.80,"CGST @ 2.5%",,0.60,"SGST @ 2.5%",,0.60,"(No. :16532)",
1-6-2018,"(149)","","Sale",-3212.18,,"(Sale)",,3212.18,,"Diesel",46.000 Ltr,69.83/Ltr,3212.18,"(No. :16533)",

Каждая строка, которая не начинается с даты, объединяется с предыдущей ...

1 ответ1

5
  • Ctrl+H
  • Найти что: \R(?!\d{1,2}-\d{1,2}-\d{4})
  • Заменить на: LEAVE EMPTY
  • проверить обернуть
  • проверьте регулярное выражение
  • Заменить все

Объяснение:

\R          : any kind of linebreak
(?!         : start negative look ahead, make sure we don't have after:
  \d{1,2}   : 1 or 2 digits
  -         : a dash
  \d{1,2}   : 1 or 2 digits
  -         : a dash
  \d{4}     : 4 digits
)           : end lookahead (ie. a date)

Результат для данного примера:

1-6-2018,"(101)","","Sale",-862.96,,"(Sale)",,837.96,,"Diesel",12.000 Ltr,69.83/Ltr,837.96,"Sales @ 5%",,23.80,,"Polishing Cloth",1 Pcs,23.80/Pcs,23.80,"CGST @ 2.5%",,0.60,"SGST @ 2.5%",,0.60,"(No. :16532)",
1-6-2018,"(149)","","Sale",-3212.18,,"Sales(Sale)",,3212.18,,"Diesel",46.000 Ltr,69.83/Ltr,3212.18,"(No. :16533)",

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .