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'。
我正在尝试传递简单的正则表达式字符串,例如
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'。