Мне нужно найти все вызовы некоторых макросов регистрации в коде. Вызов макроса имеет вид:
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] в качестве подгруппы, как-то связан с этим?) Помощь от кого-либо более знающего, чем я ценю :)