regex - textreplace 谷歌应用脚本中的正则表达式不起作用
问题描述
尝试使用正则表达式仅按日期替换文本 + 日期,但它不起作用:
function myfunction() {
var SourceFolder = DriveApp.getFolderById("");
var Files = SourceFolder.getFiles()
var body = DocumentApp.getActiveDocument().getBody();
while(Files.hasNext()) {
var file = Files.next();
body.replaceText("Date: \d{2}.\d{2}.\d{4}", "31.10.2020")
}
}
谢谢
解决方案
在您的代码中,var body = DocumentApp.getActiveDocument().getBody();
在循环之外声明,因此您始终在循环中引用活动文档主体while
。
您可以使用
while(Files.hasNext()) {
var file = Files.next();
var doc = DocumentApp.openById(file.getId());
var body = doc.getBody();
body.replaceText("Date: \\d{2}\\.\\d{2}\\.\\d{4}", "31.10.2020")
}
这里的要点是在模式中使用双反斜杠,并转义点字符,因为否则 a.
匹配除换行符之外的任何字符。
推荐阅读
- javascript - 在 JS 上得到相同的结果
- python - 踢所有人的 Discord 机器人只会踢没有角色的人
- java - 当我使用 DES 算法时,我将 byte[] 转换为 String 并将这个 String 转换为 byte[],这两个 byte[] 变得不同
- powerquery - 鉴于电源查询中的工作表数量总是不同的范围/工作表名称,如何将不同的工作表组合到一个文件中
- reactjs - React引导模式如何在提交值时先发送发布请求然后关闭模式
- python - 访问多个csv的所有行(相同数量的列和标题)的有效方法是什么
- wordpress - 在 FTP 中下载哪个文件夹以下载整个 WordPress 站点
- php - Symfony 用户角色和访问站点的安全部分
- python - 尝试将图像置于画布中心时出现错误
- .net-core - 使用 microsoft graph 创建团队时出现 Odata.bind 错误