首页 > 解决方案 > 带有 2 个不同文本的正则表达式

问题描述

我有一个编辑器,在编辑器中我必须找到匹配项并用预定义的文本替换特定的文本,或者只找到匹配项。

假设我有这样的文字

if (VALUE('Name') == 'Jhon Doe') {
  SET_VALUE('Jhon Abraham');
} else if (VALUE('Address') == '512 Lane') {
  SET_VALUE('Whitehouse lane')
}

我有这 2 个正则表达式,但这失败了

/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;
  }

我也不允许使用反向正则表达式

标签: javascriptregex

解决方案


推荐阅读