2010-06-14 31 views
2

我需要在代碼中查找某些日誌記錄宏的所有調用。宏調用的形式爲:正則表達式

DEBUG[1-5] ("methodName: the logged message", arguments) 

但宏的新版本會自動在前面加上方法的名稱,所以我的任務是寫一個Python腳本,將刪除由已指定的重複函數名程序員。

我使用re模塊的子功能。我計劃替換||表示的部分以下跡象:

||DEBUG[1-5] ("methodName: || the logged message", arguments)用簡單DEBUG[1-5]("

問題是以下幾點:

要找到我想要替代的表情時,我用下面的正則表達式:

((DEBUG | INFO | all other macros names)[1-5]*)\s*\(\"\w+: 

但它不匹配整個表達式(從DEBUG權限到冒號),但只有宏名稱,例如DEBUG5。

我的表達是錯誤的還是在Python正則表達式處理中有一些怪癖? (也許事實上,我使用DEBUG [1-5]作爲一個子組與這有什麼關係?)比任何人都知道更多的幫助讚賞:)。

回答

2

試試這個,用Java編寫的,但你可以改變它到Python

​​