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);

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...