对于我自己的一个小项目,我正在编写一个解析器来解析来自某个应用程序的事件日志。通常我在处理这样的事情时几乎没有问题,但问题是来自这些日志的字符串并不总是具有相同的参数。例如,一个这样的字符串可能是:在PHP中的字符串解析
DD/MM HH:MM:SS.MSEC TYPE_OF_EVENT SOURCE, SOURCE_FLAGS, TARGET, TARGET_FLAGS, PARAM1
在另一个场合中,字符串可以有一系列的参数,其中多达27一路,其他有16通过文档阅读,有参数中的一些逻辑,例如,第17个参数将始终保存一个整数。虽然这很好,但不幸的是,第17个参数可能是字符串中的第7个参数。对每个字符串唯一不变的是时间戳和第6个第一个参数。
我该如何解决像这样的字符串?如果我的问题有点不清楚,我很抱歉,我发现很难说出我的问题。
在字符串的其余部分有什么“固定的”,可以让你找出有多少参数。例如是依赖于TYPE_OF_EVENT字段的参数的数量? – 2011-02-16 16:01:50
任何代码给我们看?由于你的字符串总是以相同的(时间戳和6个参数)开头,所以你应该从那开始。 – soju 2011-02-16 16:07:47
@Marc是的,这些参数是在TYPE_OF_EVENT的基础上添加的,源和标志(对于目标是同等的)是唯一保证字段。根据事件添加更多参数后。 – 2011-02-16 16:09:28