Google Apps脚本是否为findtext searchpattern格式?

时间:2015-02-10 14:05:59

标签: google-apps-script

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

findText("/a/");

findText(/a/);

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

findText("a");

如何在那里传递正则表达式字符串?

3 个答案:

答案 0 :(得分:2)

使用String.search()方法。

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

答案 1 :(得分:2)

findText的文档中并不是很清楚,但replaceText的文档更清晰:

  
    

搜索模式作为字符串传递,而不是JavaScript正则表达式对象。

  

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

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

显然,String.search()也可以在这里工作,但是如果你想要操纵文本的属性,而不仅仅是字符串内容,那么使用内置的javascript函数可能会让你挂起

答案 2 :(得分:1)

可以将正则表达式与findText(searchPattern)函数一起使用,但是该表达式必须采用RE2语法。

例如,如果您想搜索不区分大小写的单词“ antevasin”,则可以指定

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

其中(?i)打开不区分大小写的匹配,并会在文档中找到“ Antevasin”。

page和此one包含一些示例和更多详细信息。