在谷歌文档(不是电子表格)中,我有一面看起来像
的文本墙 °foo bar header°foo bar bat paragraph°and another paragraph°and yet an other paragraph°and so on
我希望将文本拆分成段落。
所以我想借助regexp在°字符之间获取文本。我想用
var rangeElement = body.findText("°([^°]*)°");
但该正则表达式使谷歌文档变为“服务不可用:文档”。使用像"°.?°"
这样的正则表达式可以缓解这个问题,但不能隔离我想要的文本。
什么是可行的正则表达式?如何继续处理(
和)
?
答案 0 :(得分:1)
要获得所有(多个)匹配项,您可以利用JavaScript g
和var 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
})
}
);
)。