使用正则表达式查找 Google 文档中是否有任何大写字母

Find if there are any capital letters in Google Docs with Regex

在处理文档之前,我需要确保文档中没有大写字母。我想使用 REGEX 来测试它,但它似乎失败了。

function myFunction() {
  const doc = DocumentApp.getActiveDocument();
  let body = doc.getBody();
  let text = body.editAsText();
  Logger.log(text.findText("[A-Z\s]+").getElement().asText().getText());  
}

即使整个部分都是小写,这里的日志也会返回文本。我不知道是我的正则表达式有误,我的功能有误,还是什么。我通常在 Google 表格中工作,所以我不习惯 Docs GAS 功能。

[]用来表示一组字符。这些括号之间的任何字符都将被捕获。例如,[A-Z\s]+ 将匹配字符串中的任何大写字母和 space 字符。您的正则表达式 returns 小写,因为您的部分可能在单词之间有一个 space。

要修复它,只需删除正则表达式中的 \s

发件人:[A-Z\s]+

收件人:[A-Z]+

代码:

function myFunction() {
  const doc = DocumentApp.getActiveDocument();
  let body = doc.getBody();
  let text = body.editAsText();
  Logger.log(text.findText("[A-Z]+")); 
}

示例:

测试字符串 1:

输出:

测试字符串 2:

输出:

使用

function myFunction() {
  const doc = DocumentApp.getActiveDocument();
  let body = doc.getBody();
  let text = body.editAsText();
  Logger.log(text.findText("[A-Z]")); 
}

[A-Z] 就足以检测大写字母和 return 范围元素。