我正在将正则表达式搜索应用于谷歌文档带有一些 Markdown 代码块刻度 (```) 的文本。在我的文档上运行下面的代码将返回空结果。
var codeBlockRegEx = '`{3}((?:.*?\s?)*?)`{3}'; // RegEx to find (lazily) all text between triple tick marks (/`/`/`), inclusive of whitespace such as carriage returns, tabs, newlines, etc.
var reWithCodeBlock = body.findText(codeBlockRegEx); // reWithCodeBlock evaluates to 'null'
我怀疑我的代码中存在一些不受支持的正则表达式元素RE2,但文档并未阐明这一点。有任何想法吗?
我也收到了 null - 我能够使用 3 ` 围绕段落中的单词 test 来使以下内容正常工作。
我确实找到了这个信息:Apps 脚本中 Text 类对象的 findText 方法,扩展了 Google Docs。文档称“JavaScript 正则表达式功能的子集未得到完全支持,例如捕获组和模式修饰符。”特别是,它不支持环视。
function findXtext() {
var body = DocumentApp.getActiveDocument().getBody();
var foundElement = body.findText("`{3}(test)`{3}");
while (foundElement != null) {
// Get the text object from the element
var foundText = foundElement.getElement().asText();
// Where in the element is the found text?
var start = foundElement.getStartOffset();
var end = foundElement.getEndOffsetInclusive();
// Set Bold
foundText.setBold(start, end, true);
// Change the background color to yellow
foundText.setBackgroundColor(start, end, "#FCFC00");
// Find the next match
foundElement = body.findText("`{3}(test)`{3}", foundElement);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)