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]作爲一個子組與這有什麼關係?)比任何人都知道更多的幫助讚賞:)。