0
我正在爲我正在實現的基本語言編寫一個主要的Emacs模式。我想突出顯示方法調用的語法,其中方法名稱由[a-z][^()]*
進行檢查,但僅在後面跟着([^)])
時進行檢查。我如何定義一個正則表達式來匹配第一部分跟隨的第二部分,而不是突出第二部分?ELisp正則表達式:如果跟其他正則表達式匹配組
我正在爲我正在實現的基本語言編寫一個主要的Emacs模式。我想突出顯示方法調用的語法,其中方法名稱由[a-z][^()]*
進行檢查,但僅在後面跟着([^)])
時進行檢查。我如何定義一個正則表達式來匹配第一部分跟隨的第二部分,而不是突出第二部分?ELisp正則表達式:如果跟其他正則表達式匹配組
試試這個:
(font-lock-add-keywords 'my-mode
'(("\\(\\b[a-z][^()]*\\)([^)]*)"
1 font-lock-function-name-face t)))
的1到說的亮點應用到第一個子表達式。
注:我添加了一個\\b
,使其只匹配當[a-z]
開頭的單詞(否則Dude()
將有ude
高亮顯示),我在最後一組括號中增加了一個*
B/C它似乎就像是失蹤。
我在C++模式下測試了這個。
font-lock-add-keywords和其他字體鎖定的文檔可以在here找到。