我正在尝试使用
findText()
类的 DocumentApp
函数来获取 Google 文档中某些文本的位置。为此,我使用正则表达式 (RE2) 表达式。我希望它找到以下序列: $$anyCharacterHere$$
;基本上任何包含在 $$ ... $$ 之间的东西。由于这些序列可能不止一个,我们必须告诉正则表达式匹配这种类型的任何序列,内部不包含任何“$”。
我尝试过使用以下方法:
const re2 = new RegExp("\\$\\$.*(?!\\\$)\\$\\$");
let range = docBody.findText(re2)
但它说这是一个无效的表达式。我尝试更改反斜杠之类的东西,但无法进一步。
我想要达到的目标例如在本文中:
这是一个 $$text$$,用于显示 $$regex$$ $$$hould$$ 如何工作的 $example$$。
正则表达式应该找到:$$text$$ 和 $$regex$$。
基于您的“示例字符串”的替代方案可能是这样的;
function myFunction() {
const doc = DocumentApp.getActiveDocument();
const matches = doc
.getBody()
.getText()
.match(/\s[$]{2}[^$\s]*[$]{2}/g);
if (!matches || matches.length == 0) return;
var out=[];
for (var i=0; i<matches.length; i++){
out.push(matches[i].trim())
}
Logger.log(out);
}