Я пытаюсь получить имя файла, для которого у меня есть только URL-адрес Google Диска. В настоящее время я использую функцию регулярного выражения Google Sheets для извлечения идентификатора файла из URL, а затем использую сценарий для поиска файла на основе идентификатора, но предпочитаю выполнять регулярное выражение в сценарии.
Я просмотрел различные посты здесь, чтобы попытаться разобраться без удачи. Надеюсь, кто-то может объяснить, что я сделал неправильно, пытаясь включить регулярное выражение.
var sheet = SpreadsheetApp.getActive().getSheetByName("Test1");
var link1 = sheet.getRange("N2:N").getValues();
var regex_ids = new RegExp("/file/d/[a-zA-Z0-9]g");
var links = regex_ids.exec(link1);
var filenames = [];
for (var i = 0; i < links.length; i++) {
var url = links[i][0];
if (url != "") {
var filename = DriveApp.getFileById(links[i][0]).getName();
filenames.push([filename]);
}
}
var startRow = 2; // print in row 2 since row 1 is the header row
var fileNameColumn = 18; // Column B = column 2
var destination = sheet.getRange(startRow, fileNameColumn, filenames.length, filenames[0].length);
destination.setValues(filenames);
}
В настоящее время я застрял с ошибкой "TypeError: Невозможно прочитать свойство" length "из нулевого значения (строка 7, файл" Код ")", поскольку регулярное выражение настроено неправильно.