如何使用不区分大小写的 findText?
How to use findText case insensitive?
我尝试在 Google 文档中搜索字符串。默认情况下 findText
区分大小写。我如何使用它不区分大小写。
引用说 "Searches the contents of the element for the specified text pattern using regular expressions."
这是我试过的:
function search(string) {
var pattern = new RegExp(string, "gi");
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var rangeElement = body.findText(pattern);
while (rangeElement) {
var offset =rangeElement.getStartOffset();
var text = rangeElement.getElement().asText().getText();
html += text;
}
}
但它没有找到任何东西。我也试过:
body.findText(pattern(string));
和 body.findText(/string/\i);
还有什么我可以尝试的吗?
正如我们在官方中看到的那样reference,
A subset of the JavaScript regular expression features are not fully
supported, such as capture groups and mode modifiers.
此外,注意使用findText()的模式参数:它必须是字符串,而不是RegExp对象。
问题:
- 将正则表达式 "object" 而不是 "string" 类型发送到
findText()
- 不区分大小写的语法不正确。
解决方案:
- 使用正确的 re2 语法
将正则表达式作为字符串发送。这意味着特殊字符 \s
被双重转义 \s
findText('(?i)Apple') //matches APPLE or AppLe
阅读:
我尝试在 Google 文档中搜索字符串。默认情况下 findText
区分大小写。我如何使用它不区分大小写。
引用说 "Searches the contents of the element for the specified text pattern using regular expressions."
这是我试过的:
function search(string) {
var pattern = new RegExp(string, "gi");
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var rangeElement = body.findText(pattern);
while (rangeElement) {
var offset =rangeElement.getStartOffset();
var text = rangeElement.getElement().asText().getText();
html += text;
}
}
但它没有找到任何东西。我也试过:
body.findText(pattern(string));
和 body.findText(/string/\i);
还有什么我可以尝试的吗?
正如我们在官方中看到的那样reference,
A subset of the JavaScript regular expression features are not fully supported, such as capture groups and mode modifiers.
此外,注意使用findText()的模式参数:它必须是字符串,而不是RegExp对象。
问题:
- 将正则表达式 "object" 而不是 "string" 类型发送到
findText()
- 不区分大小写的语法不正确。
解决方案:
- 使用正确的 re2 语法
将正则表达式作为字符串发送。这意味着特殊字符
\s
被双重转义\s
findText('(?i)Apple') //matches APPLE or AppLe