我知道有很多类似的问题和答案,但我没有运气。
我只是想在Google Doc上运行一个正则表达式,并将其替换为大写字母。我有一个正常的表达式,一个简单的字符串替换工作,但我不能得到任何类型的正则表达式。我做错了什么?
function searchAndReplace() {
var bodyElement = DocumentApp.getActiveDocument().getBody();
var regExp = new RegExp(/[\n][\n]([^\n]+)[\n][^\n|\s]/gim);
bodyElement.replaceText(regExp, '$1'.toUpperCase());
}
答案 0 :(得分:0)
如replaceText documentation所示,它希望两个参数都有string
。第一个将自动为您生成RegExp
。因此,您可以使用正则表达式,但由于此语法限制,您无法将RegExp
标记传递给它(在您的示例中为gim
)。
此外,由于第二个参数也只接受一个字符串,你无法通知一个函数,这是你需要做出正确的toUpperCase
(即使使用javascript构建,你的例子也是错误的) -in string.replace功能)。
从我刚刚做的测试中,使用“$&”替换字符串模式或“$#”也不起作用。
因此,要实现您所寻找的目标,您必须自己实施此搜索和替换(可能使用findText来帮助“搜索”部分。)