【问题标题】:Using regular expressions via `re-search-forward` in elisp [duplicate]在elisp中通过`re-search-forward`使用正则表达式[重复]
【发布时间】:2026-02-13 08:25:07
【问题描述】:

我想搜索一个带有函数re-search-forward的正则表达式

当我尝试使用页面中的示例时 这里:https://www.emacswiki.org/emacs/RegularExpression#toc1

特别是正则表达式\w\{20,\} 用于搜索包含20 个或更多字母的单词,我得到一个错误。

在这里,我将光标放在我的 Lisp 缓冲区中的右括号之后,然后按 C-x C-e 进行评估。

但是,当我使用 Regexp I-search via 时, C-M-s 它按预期突出显示正确的单词。

这是为什么?

【问题讨论】:

    标签: elisp


    【解决方案1】:

    这个正则表达式:

    \w\{20,\}
    

    用双引号 elisp 字符串表示,如下所示:

    "\\w\\{20,\\}"
    

    反斜杠对于字符串的双引号读取语法是特殊的以及对于正则表达式语法是特殊的;因此,如果反斜杠用于正则表达式,则需要将其加倍。

    【讨论】:

    • 请注意,在问题的屏幕截图中,不正确的单数反斜杠如何被涂成红色?那是 Emacs (26+) 告诉你他们可能是一个错误。