Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ace编辑器如何向后查找?_Javascript_Regex_Ace Editor - Fatal编程技术网

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}); 当我在多行上有多个令牌时,它会在我

我正在努力使用javascript中的Ace编辑器。 我的转发功能工作正常:

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