Emacs 文本编辑器中的正则表达式

Emacs 使用的正则表达式(regexp)结合了 基本正则表达式(BRE)和扩展正则表达式(ERE) 的特点,同时支持 GNU 扩展。


Emacs 正则表达式的特性

  1. 反斜杠转义(Backslash Escaping)

    • Emacs 混合使用BRE 和 ERE 语法:
      • 像 ERE 一样,支持不加反斜杠+?
      • 像 BRE 一样,支持需要反斜杠\(, \), \|, \{</code>, <code>\}
  2. GNU 扩展

    • \w:匹配单词字符(类似 [a-zA-Z0-9_]
    • \W:匹配非单词字符
    • \b:匹配单词边界
    • \B:匹配非单词边界
    • \< / \>:匹配单词的开头 / 结尾
    • ` / ':匹配文本缓冲区(buffer)的开始和结束
  3. 与 PCRE(Perl-Compatible Regular Expressions)的不同

    • 没有 \s(空白字符匹配)
      • 需要使用 \s- 代替
    • 没有 \d(数字匹配)
      • 需要使用 [0-9][:digit:]
    • 不支持前瞻(Lookahead)和后顾(Lookbehind)
  4. 语法匹配

    • 使用模式特定的语法表 进行匹配:
      • \sc\s-\s 等用于特定语法模式匹配
    • 按类别匹配
      • \cc\cg 等匹配不同类别的字符

适用工具

  • Emacs 编辑器

最后修改: 2025年01月30日 星期四 02:24