Google App Script Regex 3如何删除由括号界定的文本



我在Google文档中具有以下文本。随后是作者的数据文本,括号中包含的时间戳。时间邮票也在句子的结尾处。一些数据文本也可能具有括号:

一些文字在这里。(约翰·史密斯; 2016年12月20日上午10:11(

时间邮票之间的更多文本。

其他文本已在此处输入。可能有几句句子。(Jane Doe; 2016年12月20日 08:21 pm(

上述文本的描述(C189(

我想使用Google App脚本删除时间戳记。

我尝试了以下在Google文档中使用的"查找和替换"菜单功能的正则拨号:

(.+[AP]M)

它可以很好地找到时间戳记:查找"(",然后以" am或pm"one_answers"下午"结尾的任何文本,然后是"("

它也可以在在线Regex Tester中工作。

,但它在Google App脚本中不起作用:

function searchAndReplace() {
  var doc = DocumentApp.getActiveDocument()
  var body = doc.getBody();
  body.replaceText("(.+[AP]M)", "");

我最终得到了:

(

时间邮票之间的更多文本。

(

上述文本的描述(C189(

我想要这个:

一些文字在这里。

时间邮票之间的更多文本。

其他文本已在此处输入。可能有几句句子。

上述文本的描述(C189(

我在做什么错?令人沮丧的是,当时的正则发行在Google文档中的"查找和替换"中,但在脚本中不工作。

您需要双重逃脱括号,如下所示。

function searchAndReplace() {
  var doc = DocumentApp.getActiveDocument()
  var body = doc.getBody();
  body.replaceText("\(.+?[AP]M\)", "");
  doc.saveAndClose();
}

最新更新