Google Apps 脚本查找文本搜索模式格式?

Google Apps Script findtext searchpattern format?

我正在尝试传递简单的正则表达式字符串,例如

findText("/a/");

findText(/a/);

但它没有找到任何东西。如果我只传入像这样工作的文本

findText("a");

如何在其中传递正则表达式字符串?

使用 String.search() 方法。

 function test(){
    var testString = "1212a1212";
    var results = testString.search(/a/);
    Logger.log(results);  //results = 4;
  }

文档里说的不是很清楚 findText, but the documentation for replaceText 比较清楚:

The search pattern is passed as a string, not a JavaScript regular expression object.

replaceText 文档中显示的示例表明您的第三个示例是正确的(其中对 a 的搜索仅显示为字符串 "a"

body.replaceText("^.*Apps ?Script.*$", "Apps Script");

显然,String.search() 也适用于此,但如果您希望操纵文本的属性,而不仅仅是字符串内容,请使用内置的 javascript 函数可能会让你悬而未决。

可以使用具有 findText(searchPattern) function however the expression needs to be in the RE2 语法的正则表达式。

例如,如果您想对单词 'antevasin' 进行不区分大小写的搜索,您可以指定

let searchResult = DocumentApp.getActiveDocument().getBody().editAsText().findText( '(?i)antevasin' );

其中 (?i) 打开 case-insensitive 匹配并会在文档中找到 'Antevasin'。

这个 page and this one 有一些例子和更多的细节。