我试图将颜色更改为文档中的某些文本,并且我需要正则表达式。所以,我尝试了findText
搜索我的文本在所选文本中的位置的功能,但是我在匹配正则表达式时遇到了一些麻烦。
看看这个示例脚本
function onOpen() {
DocumentApp.getUi().createMenu('Test')
.addItem('Find regex in sel', 'findRegex'))
.addToUi();
}
function findRegex() {
var ui = DocumentApp.getUi();
var selection = DocumentApp.getActiveDocument().getSelection();
var txt = selection.getSelectedElements()[0].getElement().asText();
var inp = ui.prompt('Regex to search:').getResponseText();
var regex = new RegExp(inp);
ui.alert('Found in "' + txt.getText()
+ '"\n Re: ' + txt.findText(regex)
+ '\n In: ' + txt.findText(inp));
}
这会提示要搜索的内容,然后从中构建一个正则表达式。然后正则表达式和原始字符串都用于在所选文本中进行搜索。
好吧,我不知道该怎么做才能得到regex
匹配:我总是得到空值:如果要搜索的文本是“foobarbaz”,并且我输入foo
,只有纯字符串匹配。相反,如果我输入/foo/
,显然没有匹配项。
我应该如何使用正则表达式进行搜索findText
?考虑到我必须“编写”正则表达式,例如/foobar/ + /\d+/
,foobar
用户输入的模式在哪里。