1
我試圖將顏色更改爲文檔中的某些文本,並且我需要regexp。 因此,我嘗試使用函數findText
來搜索我的文本在所選文本中的位置,但我遇到了一些與正則表達式匹配的麻煩。正則表達式在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
是用戶輸入的模式。
確實在文檔中聲明:[see here](https://developers.google.com/apps-script/reference/document/body?hl=fr-FR#findText(String))+1有自己找到它;-) –