Emacs Lisp:除了闭合方括号之外的“任何内容”正则表达式是什么?

4
在Emacs 24.2.1中,我想向后搜索第一个不是闭合方括号(即“]”字符)的字符。例如,如果我在这一行的末尾:
123]4567

我希望这个点能移动到“7”。

我的第一次尝试是:

(re-search-backward "[^\]]" nil nil nil)

将光标移到“3”这个位置。

虽然它们似乎与文档相矛盾,但我也尝试了这些方法:

(re-search-backward "[^\\]]" nil nil nil)
(re-search-backward "[^\\\]]" nil nil nil)
(re-search-backward "[^\\\\]]" nil nil nil)

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


2
你尝试过只使用 [^]] 吗?这似乎与直觉相反,但它似乎有效。 - Randy Morris
你的第一次尝试对我来说很顺利... - Trey Jackson
1个回答

8
(re-search-backward "[^]]")

在Emacs 22.2.50.1中,这对我有效。

你不需要转义方括号内的右括号,只需将其放置在集合的第一个字符位置(因为空集是无意义的)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接