regex - 使用 RegEx 捕获重复组
问题描述
我正在尝试解析如下所示的输入行:
AC#10,N850FD,10%,WEEK,IFR,1/22:45,2/00:58,390,F,0743,KEWR,3/02:30,3/05:04,380,F,1202,KMEM,3 /11:15,3/20:04,350,F,0038,LFPG,4/04:00,4/15:35,330,F,5342,ZGGG,4/19:05,4/22:50,370,F,5608 ,RJAA,5/13:25,5/14:45,300,F,0060,RJBB,5/18:05,6/06:35,330,F,0060,KMEM,6/20:45,0/05:42,340 ,F,0948,PHNL,0/07:21,0/12:24,370,F,0802,KLAX,0/14:49,0/18:09,370,F,0806,KMEM
前 5 个“字段”是“标题”(“AC#10,N850FD,10%,WEEK,IFR”),其余是重复的 6 个“字段”组(例如“1/22:45,2 /00:58,390,F,0743,KEWR")。
我是 RegEx 新手,但为此我想出了以下 RegEx 声明(AC#)(\d+),([a-zA-Z0-9]+),(\d+%),(WEEK|DAY),(IFR|VFR)(,\d\/\d{2}:\d{2},\d\/\d{2}:\d{2},\d+,[FR],\d+,[A-Z0-9]{3,5})+
:
前许多组(“标题”中的每个“字段”)的结果被很好地提取,我可以轻松访问每个值(组)。但是我的问题是以下/重复组。只有最后一个重复的“组”被提取。如果我删除最后一个“+”,则仅提取重复“组”中的第一个(自然)。
此处示例:https ://regex101.com/r/HsQMge/1
这是我希望得到的结果(作为组):
- 交流电#
- 10
- N850FD
- 10%
- 星期
- IFR
- ,1/22:45,2/00:58,390,F,0743,KEWR
- ,3/02:30,3/05:04,380,F,1202,KMEM
- ,3/11:15,3/20:04,350,F,0038,LFPG
- ,4/04:00,4/15:35,330,F,5342,ZGGG
- ,4/19:05,4/22:50,370,F,5608,RJAA
- ,5/13:25,5/14:45,300,F,0060,RJBB
- ,5/18:05,6/06:35,330,F,0060,KMEM
- ,6/20:45,0/05:42,340,F,0948,PHNL
- ,0/07:21,0/12:24,370,F,0802,KLAX
- ,0/14:49,0/18:09,370,F,0806,KMEM
解决方案
可能 RegEx 不是执行此任务的正确工具。也许您可以将其仅用于将字符串拆分为数组。休息工作是为了array_chunk
:
$str = "AC#10,N850FD,10%,WEEK,IFR,1/22:45,2/00:58,390,F,0743,KEWR,3/02:30,3/05:04,380,F,1202,KMEM,3/11:15,3/20:04,350,F,0038,LFPG,4/04:00,4/15:35,330,F,5342,ZGGG,4/19:05,4/22:50,370,F,5608,RJAA,5/13:25,5/14:45,300,F,0060,RJBB,5/18:05,6/06:35,330,F,0060,KMEM,6/20:45,0/05:42,340,F,0948,PHNL,0/07:21,0/12:24,370,F,0802,KLAX,0/14:49,0/18:09,370,F,0806,KMEM";
$data = preg_split('/[,#]/',$str);
$data = array_chunk($data, 6);
var_dump($data);
推荐阅读
- elasticsearch - Elasticsearch statefulset 不会在 rook-cephfs 上创建 volumesClaims
- python - sklearnmutual_info_classif 根据特征顺序返回不同的值
- c# - 1 个模型在一个视图中拆分为 3 个表,这可能吗?
- scala - scala并行集合上的地图在REPL中没有反应
- docker - Kubernetes,无法使用外部 IP 地址访问 Pod
- javascript - 作为数据属性传递给 JS 时找不到文件夹的 URL
- node.js - 节点画布 getImageData() 内存不足
- dart - 地图
到地图 > 在飞镖 - sql - 如何限制在我的 SQL Server 函数中返回的 ROWS 数量?
- css - 修复使用 iframe css 响应技巧时的填充问题