Javascript Ace编辑器如何向后查找?
我正在努力使用javascript中的Ace编辑器。 我的转发功能工作正常:Javascript Ace编辑器如何向后查找?,javascript,regex,ace-editor,Javascript,Regex,Ace Editor,我正在努力使用javascript中的Ace编辑器。 我的转发功能工作正常: var selectionRange = editor.getSelectionRange(); var res = editor.find(/\?\w+\b/, { backwards: false, start: selectionRange, wrap: true, caseSensitive: false, wholeWord: false, regExp: true}); 当我在多行上有多个令牌时,它会在我
var selectionRange = editor.getSelectionRange();
var res = editor.find(/\?\w+\b/, { backwards: false, start: selectionRange, wrap: true, caseSensitive: false, wholeWord: false, regExp: true});
当我在多行上有多个令牌时,它会在我进行多个搜索时按顺序查找它们
?a ?b ?c // First ?a, then ?b, then ?c, then ?d
?d
但是对于向后查找,只要将向后更改为true,它只查找每行的第一个元素
var selectionRange = editor.getSelectionRange();
var res = editor.find(/\?\w+\b/, { backwards: true, start: selectionRange, wrap: true, caseSensitive: false, wholeWord: false, regExp: true});
a?b?c//先是d,然后是a?跳过c和?b
D
向后查找以便检索所有实例的正确方法是什么?您的regexp未命中
g
标志。使用editor.find(“\\?\\w+\\b”,…)
并让ace创建regexp,或者使用editor.find(/\?\w+\b/g,…)
这个g标志意味着什么?g意味着全局。没有它时,替换(/a/,“x”)=“xba”,有了它,替换(/a/g,“x”)=“xbx”
?a ?b ?c // First ?d, then ?a !! ?c and ?b are skipped
?d