使用Emacs在大写regexp中出现意外行为

时间:2013-07-12 17:53:31

标签: emacs elisp

我正在尝试向后删除单词的中间步骤,这应该以大写字母停止(在camelCase的情况下)。

为此,我想用以下方法来获得第一个大写字母的位置:

(search-backward-regexp "[:upper:]")

如果你在最后一个括号之后运行它,那么它将在这里:

(search-backward-regexp "[:upper | :]"),即r之后。

怎么样?

3 个答案:

答案 0 :(得分:5)

(search-backward-regexp“[[:upper:]]”)

[:upper:]不是“上层”电话,  但只是一个匹配单个字符的字符类,它必须是“:”或“u”或“p”或“e”或“r”之一。 只有第二个“[]”才能搜索该课程。

答案 1 :(得分:1)

Andreas的回答是正确的。但是,根据您要实现的目标,我建议您查看subword-mode(它与emacs捆绑在一起,至少对于现代的emacsen来说)

答案 2 :(得分:0)

我现在意识到它与变量case-fold-search

有关

设置为t时,会忽略搜索中的大小写。