我正在研究一些将文本解析为XML的代码。我目前正在使用java和jaxb来处理XML和数据的程序内表示形式。我需要设置一个易于扩展和适应的方法,以将文本文件中的信息解析为java类。数据大部分将保持不变,但我需要能够支持以后在文本输入格式中进行的更改。 (我正在分析航空公司飞行员的航班时刻表,并且我想支持其他航空公司的时刻表。)似乎正则表达式是行之有效的方法,但是我在Java RE上所做的工作很少,这似乎是一个糟糕的解决方案与python相比-特别是命名捕获。但是,我对python的了解少于对Java的了解!
因此,我正在寻找一个模块化的系统来解析文本数据,以便以后可以轻松地进行适应,扩展和分发。如果愿意,我愿意学习更多的python,但是我的时间和能力有限。有什么建议么?我正在解析的文本的一个示例如下。
================================================== ==============================================
6122年6月8日生效的8122 TU报告
1个CAPT,1个F / O
DAY FLT。 EQP出发到达BLK。 BLK。责任CR。上电图
TU 180320 PHX 0745 SAN 0857 * 1.12------
TU 005320 SAN 0950 PHX 1106 1.16-8-----
TU 592 L 320 PHX 1215 MCI 1652 2.37-15-----
雷迪森A / P 5.05 8.22 5.05 MCI 12.18-22-----
(816)464-2423-29-
我们403 B 320 MCI 0610 PHX 0657 2.47
我们149320 PHX 0859 CMH 1547 3.48
市中心假日酒店6.35 9.37 6.35 CMH 15.13
(614)221-3281
TH 335 B 320 CMH 0800 PHX 0913 4.13
TH 343 L 320 PHX 1029 PVR 1508 2.39
卡萨玛格纳万豪酒店6.52 9.23 6.52 PVR 15.52
52-322-2260000 TRANS:酒店班车
FR 621320 PVR 0815 PHX 0839 2.24
2.24 3.39 2.24
信用HRS。 21.00黑。 HRS。 LDGS 20.56:8架TAFB 74.24
================================================== ==============================================
最佳答案
这些看起来像固定宽度的字段,这对于简单的字符串拆分来说可能是一个不错的选择。看起来可以使用正则表达式的唯一事情是确定正在查看的记录类型,尽管缩进级别对于确定记录类型也很有用。