【发布时间】:2019-11-26 07:29:34
【问题描述】:
我一直在尝试编写一个 Google Apps 脚本来搜索文档并更改括号的所有实例(包括括号本身):
Hello (C)world, nice to (D)meet you, You are (G) my sunshine, my (Em)only sunshine.
到这里:
Hello **(C)**world, nice to **(D)**meet you, You are **(G)** my sunshine, my **(Em)** only sunshine.
我已经成功地做到了:
function onOpen() {
DocumentApp.getUi()
.createMenu('Utilities')
.addItem('Bold Parentheses', 'replaceParentheses')
.addToUi();
};
function replaceParentheses() {
var body = DocumentApp.getActiveDocument().getBody();
var found = body.findText("\\(.+?\\)");
while (found) {
var elem = found.getElement();
if (found.isPartial()) {
var start = found.getStartOffset();
var end = found.getEndOffsetInclusive();
elem.setBold(start, end, true);
}
else {
elem.setBold(true);
}
found = body.findText("\\(.+?\\)", found);
}
};
但我想知道是否有更有效的方法来做到这一点。
我正在使用它来增加括号中的和弦名称......所以如果歌词中有呼叫和响应,并且某些歌词周围有括号 - 我将如何排除这些括号?换句话说,我怎样才能使一组变量总是像 (A,B,C,A#,B#,C#,Ab,Bb,Cb,Am,Bm,Cm,Adim7,Bb7add9, etc) 一样加粗
【问题讨论】:
标签: regex google-apps-script parentheses