正则表达式如何匹配 .org 文件头部的 "#" 字符?

我想用正则表达式把形如 #+title: xxxx 的部分匹配出来, 并将标题部分取出来. 但是 # 这个字符没法匹配. 我查了一下 # 好像并非特殊字符, 但我尝试用 #或者\#或者\\#来匹配都不成功. 不知道我操作是不是有问题

临时用 . 顶一下, 目前的方法是:

(string-match "^[ \t]*.+[title|TITLE]:[ ]*\\(.*\\)[ \t\n]*$" first-line)

+ 是特殊字符。

(let ((string "#+TITLE: Tom and Jerry")
      (regexp "^#\\+TITLE: \\(.*\\)$"))
  (when (let ((case-fold-search 'ignore-case))
          (string-match regexp string))
    (match-string 1 string)))
;; => "Tom and Jerry"
2 个赞

感谢! 我思维定势了

  • manual 中有说明哪些是特殊的字符
  • M-x re-builder 可以针对当前 buffer 交互式构造正则,实时得到反馈能匹配哪些,一目了然
2 个赞

感谢! 之前没用过 M-x re-builder, 不知道有这东西