我有一个编辑器,在编辑器中,我必须找到匹配项,并用预定义的文本替换特定文本,或者只是找到匹配项。
假设我有这样的文字
if (VALUE('Name') == 'Jhon Doe') {
SET_VALUE('Jhon Abraham');
} else if (VALUE('Address') == '512 Lane') {
SET_VALUE('Whitehouse lane')
}
我有这两个正则表达式,但这失败了
/VALUE\(('|").*('|")?\)/g
/SET_VALUE\(('|").*('|")?\)/g
由于第二个正则表达式,第一个也找到SET_VALUE作为VALUE。我仍在学习正则表达式,这是新知识。
在我使用摩纳哥编辑器之间,我必须使用自动补全
provideCompletionItems: (model, position) => {
const textUntilPosition = model.getValueInRange({
startLineNumber: 1, startColumn: 1,
endLineNumber: position.lineNumber, endColumn: position.column
});
const regexConstructCompletion = textUntilPosition.match(/VALUE\\(('|").*('|")?\\)/);
const attributeSuggestions = regexConstrcutCompletion ? autoCompleteAttributes : [];
return attributeSuggestions;
}
我也不允许使用反向正则表达式