查找带有Regex的Google文档中是否有大写字母

查找带有Regex的Google文档中是否有大写字母,regex,google-apps-script,google-docs,Regex,Google Apps Script,Google Docs,在处理文档之前,我需要确保文档中没有大写字母。我想用正则表达式来测试,但似乎失败了 function myFunction() { const doc = DocumentApp.getActiveDocument(); let body = doc.getBody(); let text = body.editAsText(); Logger.log(text.findText("[A-Z\s]+").getElement().asText().getTex

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

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 Sheets中工作,因此我不习惯Docs GAS函数。

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

要修复它,只需删除正则表达式中的
\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]+")); 
}
示例:

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]
单独检测一个大写字母并返回range元素就足够了。

谢谢!由于文本中有空格,我想我需要\s。总有一天我会明白正则表达式。。。