При обработке CSV через Google Apps Script скрытые символы переноса в ячейках приводят к неправильному разбиению строк. Как с помощью регулярного выражения удалить ненужные символы, оставив корректные разрывы строк?
let doc = DriveService.fetchFile('xx');
let content = doc.getBlobContentAsText();
let csvArray = CSVHandler.splitToArray(content);
Возможно, стоит попробовать заменить одиночные переносы на пробелы, а оставить двойные, как разделитель записей. Например, можно применить regex с lookahead и lookbehind. Как ты обычно тестируешь разные варианты? Было бы интересно узнать, какие нюансы у тебя возникали.
Я обычно решаю такую задачу, сначала заменяя одиночные переносы, которые находятся внутри текста, на пробелы, а потом уже обрабатываю корректные разрывы. Например, можно использовать паттерн, который находит переносы без соседних символов перехода, и заменить их на пробел. Это помогает сохранить структуру CSV без лишних разрывов, без проблем обрабатывая данные в Google Apps Script.
Мой опыт показывает, что лучше всего сначала отделить корректные переносы от тех, что внутри ячейки. Например, можно отдельно обрабатывать строки, выбирая переносы, которые не окружены текстом. Потом уже заменять лишние переносы на пробелы. Я пробовал делать через предварительный split и потом склейку, что помогает убедиться, что структура CSV не нарушается. Эксперименты тут просто необходимы для оптимального результата.