【问题标题】:Google Apps Script - replaceText - Can't Replace Period, Comma and Question MarkGoogle Apps 脚本 - replaceText - 无法替换句点、逗号和问号
【发布时间】:2020-01-13 23:28:28
【问题描述】:

我正在尝试编写一个谷歌应用脚​​本,它将在谷歌文档中查找特定单词并将其替换为其他单词...

我想将“你好”(空格、你好、空格)替换为“R1”(空格、R1、空格) 如果你好之后有任何标点符号,比如句号、逗号或问号,它应该是相同的逻辑:

  • " hello " 将替换为 " R1 "
  • " hello. " 将替换为 " R1. "
  • " hello, " 将替换为 " R1, "
  • " hello? " 将替换为 " R1? "

所以我使用了以下内容:

function docReplace() {
  var body = DocumentApp.getActiveDocument().getBody();
  body.replaceText(" hello ", " R1 ");
  body.replaceText(" hello. ", " R1. ");
  body.replaceText(" hello, ", " R1, ");
  body.replaceText(" hello? ", " R1? ");
}

不幸的是,这不起作用,因为“。” , “,“ 和 ”?”是正则表达式符号。

然后,我尝试了这个:

function docReplace() {
  var body = DocumentApp.getActiveDocument().getBody();
  body.replaceText(" hello ", " R1 ");
  body.replaceText(" hello\. ", " R1. ");
  body.replaceText(" hello\, ", " R1, ");
  body.replaceText(" hello\? ", " R1? ");
}

但还是不行。逗号和问号作为句点返回。

如果有人能提供正确的代码,我将不胜感激。

【问题讨论】:

    标签: google-apps-script google-docs


    【解决方案1】:
    • 您希望使用 Google Apps 脚本实现以下替换。在此示例中,## 用作值的分隔符。

      • 来自

        ## hello ##
        ## hello. ##
        ## hello, ##
        ## hello? ##
        
      • ## R1 ##
        ## R1. ##
        ## R1, ##
        ## R1? ##
        

    如果我的理解是正确的,那么这个修改呢?本次修改将\.\,\?分别修改为\\.\\,\\?

    修改脚本:

    function docReplace() {
      var body = DocumentApp.getActiveDocument().getBody();
      body.replaceText(" hello ", " R1 ");  // Modified
      body.replaceText(" hello\\. ", " R1. ");  // Modified
      body.replaceText(" hello\\, ", " R1, ");  // Modified
      body.replaceText(" hello\\? ", " R1? ");  // Modified
    }
    

    参考:

    如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

    【讨论】:

    • @tylo88 感谢您的回复。很高兴您的问题得到解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多