微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 关于如何解析这个数据集的任何优雅想法?

我正在使用PHP 5.3从Web服务调用接收数据集,该调用返回一个或多个事务的信息.每个事务的返回值由管道(|)分隔,事务的开始/结束由空格分隔.

2109695|49658|25446|4|NSF|2010-11-24 13:34:00Z 2110314|45276|26311|4|NSF|2010-11-24 13:34:00Z 2110311|52117|26308|4|NSF|2010-11-24 13:34:00Z (etc)

由于日期时间戳中的空格,对空间进行简单拆分不起作用.我知道正则表达式很好,知道总有不同的方法来打破这个,所以我想得到一些专家的意见将帮助我提出最密不透的正则表达式.

解决方法:

如果每个时间戳最后都有一个Z,你可以使用正向后向断言来分割空间,只有当它前面有一个Z时:

$transaction = preg_split('/(?<=Z) /',$input);

获得交易后,您可以将它们拆分为|获得个别零件.

Codepad link

请注意,如果您的数据的Z后跟一个除时间戳之外的其他位置的空格,则上述逻辑将失败.为了克服这个问题,只有在时间戳模式之前才能分割空间:

$transaction = preg_split('/(?<=\d\d:\d\d:\d\dZ) /',$input);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐