Apps脚本body.replaceText()将不匹配多行

时间:2018-12-04 09:23:25

标签: regex google-apps-script google-docs re2

在Google文档中提供以下文本:

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

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

我希望能够以编程方式删除Bryan Smith或Jerry Macnamara的文本块。为此,我尝试使用Apps Script正文元素的replaceText()函数。问题是,正则表达式无法按预期运行。

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

0 个答案:

没有答案