2012-07-31 40 views
0

我正在使用語法高亮控件,我必須用Regex指定所有高亮顯示的東西。我已經完成了其他一切(關鍵字,函數,字符串,註釋等),但我無法想出一個適用於幻數的良好規則。如果有幫助,我將它用於Lua文本編輯器。用正則表達式尋找神奇數字

enter image description here

正如你看到的,我的變量名,也讓他們的部分:我目前使用\d+檢測數字,但問題是,我結束了這樣的事情

突出顯示。

有沒有人知道一種方法來使這個特定的規則正常工作?

回答

3

你不希望它匹配一個名稱,所以添加一個字邊界:\b\d+\b

對於浮標,可能有一個小數部分:\b\d+(?:\.\d+)?\b

對於浮點數,也可以有一個指數:\b\d+(?:\.\d+)?(?:[Ee][+\-]?\d+)\b

+0

對於整數,十六進制常量可以有一個「0x」前綴,並且後面多個字符不只是十進制數字。 – 2015-05-24 20:43:04

2

我會說,保持簡單,當涉及正則表達式(即只寫你需要什麼,沒有更多)。下面將匹配的已被分配組2至浮標和整數:

(=\s*)([\d|\.]+)(\s*;) 
  • 第1組:背景信息「=」符號之後開始,佔任何額外 白色空間(\ S *)。
  • 第2組:將匹配一個或多個數字 (\ d)或句點(。)。
  • 第3組:上下文在';'結束, 佔用之前的任何額外空白(\ s *)。

希望有幫助。