Мне нужно найти все вызовы некоторых макросов регистрации в коде. Вызов макроса имеет вид:регулярное выражение
DEBUG[1-5] ("methodName: the logged message", arguments)
Но новые версии макросов автоматически Предварение имя метода, поэтому моя задача состоит в том, чтобы написать сценарий Python, который удалит повторяющиеся имена функций, указанных уже по программист.
Я использую функцию sub из модуля 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] как подгруппу, имеет какое-то отношение к этому?) Помощь от любого более знающего меня, чем я оценил :).