如何使用findText不区分大小写?

wep*_*i23 2 regex google-docs google-apps-script re2

我尝试在 Google 文档中搜索字符串。默认情况下findText区分大小写。我该如何使用它不区分大小写。

该参考文献称“使用正则表达式在元素内容中搜索指定的文本模式”。

这就是我尝试过的:

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;
  } 
}
Run Code Online (Sandbox Code Playgroud)

但它没有发现任何东西。我也尝试过:

body.findText(pattern(string));body.findText(/string/\i);

我还能尝试什么吗?

The*_*ter 6

问题:

  • 将正则表达式“对象”而不是“字符串”类型发送到findText()
  • 不区分大小写的语法错误。

解决方案:

  • 使用正确的 re2 语法
  • 将正则表达式作为字符串发送。这意味着特殊字符\s被双重转义\\s

    findText('(?i)Apple') //matches APPLE or AppLe 
    
    Run Code Online (Sandbox Code Playgroud)

读书: