Emacs Lisp:正常表达"除了近方括号"之外的任何东西?

use*_*464 3 emacs

在Emacs 24.2.1中,我想向后搜索第一个不是紧密方括号的字符,即]字符.例如,如果我在这一行的末尾:

123]4567
Run Code Online (Sandbox Code Playgroud)

我希望这一点能够转向"7".

我的第一次尝试是:

(re-search-backward "[^\]]" nil nil nil)
Run Code Online (Sandbox Code Playgroud)

它移动到了"3"的点.

虽然它们似乎与文档冲突,但我也试过这些:

(re-search-backward "[^\\]]" nil nil nil)
(re-search-backward "[^\\\]]" nil nil nil)
(re-search-backward "[^\\\\]]" nil nil nil)
Run Code Online (Sandbox Code Playgroud)

什么是正确的正则表达式?

Bar*_*mar 7

(re-search-backward "[^]]")
Run Code Online (Sandbox Code Playgroud)

在Emacs 22.2.50.1中为我工作.

你不必在方括号内转义右括号,你只需要使它成为集合中的第一个字符(因为空集是没有意义的).