我正在尝试从基本模式编写派生模式。假设我有这个正则表达式:A ((foo)bar)? B
,我如何告诉 emacs 使用以下面孔?
font-lock-keyword-face
在A
font-lock-warning-face
在foo
(但不是bar
)font-lock-constant-face
在B
我尝试使用以下代码:
(defvar myregexp
"\\(A\\) \\(?:\\(foo\\)bar \\)?\\(B\\)")
(setq mylang-font-lock-keywords `(
(, myregex 1 font-lock-keyword-face)
(, myregex 2 font-lock-warning-face)
(, myregex 3 font-lock-constant-face)
))
但它不适用于字符串A B
(emacs 报告丢失的捕获)。