我的任务是使用 PHP 脚本分析日志文件。我将使用 REGEX 来拆分日志记录以进行进一步分析。日志记录如下:
param1=val1;param2=val2;param3=val3;[int1Param1=int1Val1;int1Param2=int1Val2;][int2Param1=int2Val1;int2Param2=int2Val2;][int3Param1=int3Val1;int3Param2=int3Val2;]param4=val4;
所以,我有一组我必须分析的参数和值,我对这部分没有问题。我关心的是“会话数据”,它位于 param3 和 param4 之间的一系列方括号内。问题是我不知道我在这部分会有多少记录(这部分可以是 0 个或更多这样的记录)。我用以下正则表达式识别这部分:
(\[[^\]\[]+\])*
它完美地识别了“param3=val3;”之间的完整字符串 和“param4=val4;” 并将其作为 preg_match 的 $matches 数组的“0”元素返回。我需要将所有这些括号都作为数组元素获取,以便进一步分析其内容,但 $matches 仅包含 2 个元素:“0” - 鲸鱼字符串;“1” - 最后一个“括号”。有任何想法吗?谢谢丹尼斯。