Google Script - получить текст с апострофом в ячейке (электронная таблица) и найти его в теле документа Google.
Я создал скрипт (скрипт, связанный с контейнером) в своей электронной таблице, в котором у меня есть 4 столбца: (1) текст до, (2) текст после, (3) текст для вставки между и (4) URL-адрес документа Google с текстом, в котором я хочу заменить на правильное значение (между).
Мой метод замены не работает, когда у меня есть апостроф ('), который я не пробовал для других символов (/,"поэтому я не знаю). Как решить эту проблему? Это мой код:
var COLUMN_URL =....
var URL = ...;
// loop for n
Logger.log(' URL ' + URL);
var body = DocumentApp.openByUrl(URL).getBody();
body.replaceText(
sheet.getRange(n + 1, 2).getDisplayValue() + ".*" + sheet.getRange(n + 1, 3).getDisplayValue(),
sheet.getRange(n + 1, 2).getDisplayValue() + sheet.getRange(n + 1, 4).getDisplayValue() +
sheet.getRange(n + 1, 3).getDisplayValue()
);
Изменить: я проверил с несколькими символами, когда я не использую апострофы, кавычки, * и? это работает, я буду тестировать с другими символами, но пока! & . и числа, помещенные в ячейки (до и после), работают
С помощью \, ( и ) я получаю сообщение о недопустимом шаблоне регулярного выражения, который мне нравится.*McDonald)s
1 ответ
Пытаться \Q...\E
¹
var textBfr = sheet.getRange(n + 1, 2).getDisplayValue(),
textAr = sheet.getRange(n + 1, 3).getDisplayValue(),
textInsert = sheet.getRange(n + 1, 4).getDisplayValue();
body.replaceText( "\\Q"+textBfr+"\\E"+ ".*?" +"\\Q"+textAr+"\\E", textBfr+textInsert+textAr);