首先,我想说明我对高级正则表达式解决方案并不熟悉。我只用它来进行简单匹配。我从其他开发人员那里继承了一个项目 - 具有15k个别日志条目的应用程序。
我需要一个正则表达式来搜索已定义的日志模式,并且匹配任何%X的计数与参数计数不匹配
有效日志的示例是:
g_Log.Add(0, __FILE__, __FUNCTION__, "[LuckyItem][Strengten Item] Strenghten Fail [%s][%s] Name[%s] Type[%d] Serial[%I64d] Invalid ItemType[%d]",
lpObj->AccountID, lpObj->Name, pTarget->GetName(), pTarget->m_Type,
pTarget->m_Number, iItemType);
正如您在“”中包含的日志消息中所看到的那样。我需要正则表达式来匹配日志消息中包含的%X计数与参数计数。如果不匹配则显示结果。参数用以后分隔,可能有也可能没有额外的[空格]之后,log end is;
无效日志示例:
g_Log.Add(0, __FILE__, __FUNCTION__, "Argument1: %s Argument2: %d Argument3: %s", Argument1, Argument2);
在此示例中,缺少参数3。在其他意义上计算%X =!参数计数
任何帮助将不胜感激