我当前正在分析具有以下结构的日志文件:
1)时间戳,前接#字符,后接\n
2)任意#在该时间戳之后发生的事件,所有事件都后跟\n
3)重复。。在
这是一个exmaple:#100
04!
03!
02!
#1299
0L
0K
0J
0E
#1335
06!
0X#
0[#
b1010 Z$
b1x [$
...
请原谅这些看似神秘的值,它们是代表某些“事件”的编码。在
注意:事件编码也可以使用#字符。
我要做的是数数在某个时间发生的事件的数量。在
换句话说,在时间100时,发生了3起事件。在
我试图匹配两个时间戳之间的所有文本,并通过简单地计算匹配文本中包含的新行数来计算事件数。在
我使用Python的regex引擎,并使用以下表达式:
pattern = re.compile('(#[0-9]{2,}.*)(?!#[0-9]+)')
注意:{2,}是因为我需要至少两位数字的时间戳。在
我匹配一个时间戳,继续匹配任何其他字符,直到找到另一个时间戳-结束匹配。在
它返回的结果是:
^{pr2}$
所以,我得到了时间戳-但没有事件数据-我真正关心的!在
我想这是因为消极的背后看是“贪婪的”——但我不完全确定。在
可能有一个完全不同的正则表达式,使这更简单-开放的任何建议!在
非常感谢任何帮助!在
-千