2010-12-04 83 views
0

我正在爲我正在實現的基本語言編寫一個主要的Emacs模式。我想突出顯示方法調用的語法,其中方法名稱由[a-z][^()]*進行檢查,但僅在後面跟着([^)])時進行檢查。我如何定義一個正則表達式來匹配第一部分跟隨的第二部分,而不是突出第二部分?ELisp正則表達式:如果跟其他正則表達式匹配組

回答

1

試試這個:

(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找到。