Сценарий приложения body.replaceText () не будет соответствовать нескольким строкам - PullRequest
0 голосов
/ 04 декабря 2018

Учитывая следующий текст в Google Doc:

@1Bryan Smith
1234 Alameda Ln
Palm Springs, CO
92264@

@2Jerry Macnamara
4568 Montagonal Ave
Aspertine, MD
29382@

Я хочу иметь возможность программно удалить блок текста для Брайана Смита или Джерри Макнамара.Для этого я пытаюсь использовать функцию replaceText () элемента тела Apps Script.Проблема в том, что регулярное выражение не работает должным образом.

var i = 2;
var regex = new RegExp('^@' + i + '([\\s\\S]*)@$', 'm');

Приведенное выше регулярное выражение работает , но body.replaceText () не принимает RegExp в качестве аргумента, только строкипредставляя выражение.Я попытался реплицировать вышеупомянутое регулярное выражение в строковом формате следующим образом:

body.replaceText('(m)^@' + i + '([\\s\\S]*)@$', '');

Не удается найти совпадение.Я полагаю, что я могу неправильно установить флаг m.

Необходимо использовать функцию replaceText (), я не хочу редактировать текст документа напрямую в виде строки, так как это испортит форматирование и изображения вдокумент.

Документация: https://developers.google.com/apps-script/reference/document/body#replacetextsearchpattern-replacement

Пример скрипта для тестирования (Инструменты -> Редактор скриптов): https://docs.google.com/spreadsheets/d/136_o9acI_rtHf0njRapt1i-r0F_ZWPAXtKYVkUmpBlc/edit#gid=0

...