Python 使用regex解析日志
我需要在代码中找到一些日志宏的所有调用。宏调用的形式如下:Python 使用regex解析日志,python,regex,Python,Regex,我需要在代码中找到一些日志宏的所有调用。宏调用的形式如下: DEBUG[1-5] ( "methodName: the logged message", arguments) 但是新版本的宏会自动在方法名前加上前缀,所以我的任务是编写一个Python脚本,删除程序员已经指定的重复函数名 我正在使用re模块中的子函数。我计划替换以下| |符号所示的部分: | |调试[1-5](“方法名:| |记录的消息”,参数)只需调试[1-5](“ 问题如下: 要查找要替换的表达式,我使用以下正则表达式: (
DEBUG[1-5] ( "methodName: the logged message", arguments)
但是新版本的宏会自动在方法名前加上前缀,所以我的任务是编写一个Python脚本,删除程序员已经指定的重复函数名
我正在使用re模块中的子函数。我计划替换以下| |符号所示的部分:
| |调试[1-5](“方法名:| |记录的消息”,参数)
只需调试[1-5](“
问题如下:
要查找要替换的表达式,我使用以下正则表达式:
((DEBUG | INFO | all other macros names )[1-5]*)\s*\(\"\w+:
但是它不匹配整个表达式(从DEBUG到冒号),而只匹配宏名,例如DEBUG5
我的表达式是错误的还是Python正则表达式处理中存在一些怪癖?(可能是因为我将调试[1-5]作为一个子组使用了这一事实与此有关?)
replaceAll("(DEBUG[1-5]\s*\\(\")\"[^:]+:\\s+([^;]+)", "$1$2");