【发布时间】:2019-02-19 04:13:30
【问题描述】:
我正在尝试使用 DocumentApp.getActiveDocument().getBody().replaceText() 精确匹配两个连续的空格,并将它们替换为一个空格。
不幸的是,它只支持一些正则表达式 (https://github.com/google/re2/wiki/Syntax)。
我尝试过DocumentApp.getActiveDocument().getBody().replaceText("[^ ] {2}[^ ]", " "),但它也与文本周围的字符匹配。
我已经尝试过DocumentApp.getActiveDocument().getBody().replaceText("([^ ]) {2}([^ ])", "$1 $2"),但这会输出“$1 $2”而不是“character character”
我尝试过DocumentApp.getActiveDocument().getBody().replaceText(" {2}", " "),但它也匹配更大空间组中的两个空格。
【问题讨论】:
-
你不能只做
replaceText(" ", " ")吗? -
@Jack Bashford 不会只匹配一个空格吗?
-
这是 StackOverflow 的注释 markdown 语法的问题,它似乎用单个空格替换重复的键入空格。不确定是否有解决方法。 (我确定@Jack 在评论框中输入了两个空格)例如
foo barfoo 和bar之间输入了5 个空格@ -
@CertainPerformance 在那种情况下仍然没有,因为我在使用replaceText(“”,“”)时出错,所以我使用replaceText(“{2}”,“”),应该是一样的.问题在于它还匹配更大空间组中的两个连续空间,这是我不想要的。
-
如果字母和数字之间必须出现空格,请尝试
"\b {2}\b"。
标签: regex google-apps-script google-docs