使用findText在Google App脚本(documentApp)中使用正则表达式拆分文本

时间:2017-07-02 22:08:56

标签: regex google-apps-script

在谷歌文档(不是电子表格)中,我有一面看起来像

的文本墙
 °foo bar header°foo bar bat paragraph°and another paragraph°and yet an other paragraph°and so on

我希望将文本拆分成段落。

所以我想借助regexp在°字符之间获取文本。我想用

     var rangeElement = body.findText("°([^°]*)°");

但该正则表达式使谷歌文档变为“服务不可用:文档”。使用像"°.?°"这样的正则表达式可以缓解这个问题,但不能隔离我想要的文本。

什么是可行的正则表达式?如何继续处理()

中的子字符串

1 个答案:

答案 0 :(得分:1)

要获得所有(多个)匹配项,您可以利用JavaScript gvar rx = /°([^°]*)/g; while (m=rx.exec(doc.getBody().getText())) { Logger.log("Matched: " + m[1]); } (全局)修饰符。

/°([^°]*)/g

/是一个正则表达式文字符号(介意周围不应该有引号),其中°([^°]*)是正则表达式分隔符,°是模式匹配°符号,然后将([^°]*)g)以外的任何0个或多个字符捕获到第1组中任意次(RegExp#exec)。

要实际匹配所有匹配项,您需要多次调用m[1]并获取组1值(this.subscription = this.slService.startedEditing .subscribe( (index: number) => { this.editedItemIndex = index; this.editMode = true; this.editedItem = this.slService.getIngredient(index); this.slForm.setValue({ name: this.editedItem.name, amount: this.editedItem.amount }) } ); )。

enter image description here