gpt4 book ai didi

java - 在 Java 或 Python 中使用正则表达式灵活解析文本

转载 作者:行者123 更新时间:2023-12-02 08:17:27 25 4
gpt4 key购买 nike

我正在编写一些代码来将文本解析为 XML。我目前正在使用 java 和 jaxb 来处理 XML 和数据的程序内表示。我需要设置一个易于扩展和适应性强的方法来将文本文件中的信息解析到我的 java 类中。数据大部分保持不变,但我需要能够支持文本输入格式的后续更改。 (我正在解析航空公司飞行员的航类时刻表,并且我想支持其他航空公司的时刻表。)似乎正则表达式是可行的方法,但我使用 java RE 的经验表明它似乎是一个糟糕的解决方案与 python 相比 - 专门命名捕获。但是,我对 Python 的了解还不如对 Java 的了解!

因此,我正在寻找一个模块化系统来解析文本数据,以便以后可以轻松地调整、扩展和分发。如果需要的话我愿意学习更多的python,但是我的时间和能力有限。有什么建议么?我正在解析的文本示例如下。

================================================================================================= 8122 TU             REPORT AT 06.45/N             EFFECTIVE JUN 08-JUN 29      1 CAPT, 1 F/O   DAY  FLT.  EQP DEPARTS   ARRIVES    BLK.   BLK.  DUTY   CR.     LAYOVER   MO TU WE TR FR SA SU   TU   180   320 PHX 0745  SAN 0857* 1.12                                      -- -- -- -- -- --   TU   005   320 SAN 0950  PHX 1106  1.16                                   --  8 -- -- -- -- --   TU   592 L 320 PHX 1215  MCI 1652  2.37                                   -- 15 -- -- -- -- --             Radisson A/P                     5.05  8.22  5.05  MCI  12.18   -- 22 -- -- -- -- --             (816) 464-2423                                                  -- 29 --               WE   403 B 320 MCI 0610  PHX 0657  2.47                                     WE   149   320 PHX 0859  CMH 1547  3.48                                               Holiday Inn City Center          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                                               Marriott Casamagna               6.52  9.23  6.52  PVR  15.52               52-322-2260000 TRANS: Hotel Shuttle                      FR   621   320 PVR 0815  PHX 0839  2.24                                                                                2.24  3.39  2.24                    CREDIT HRS.  21.00     BLK. HRS. 20.56    LDGS:  8     TAFB    74.24  =================================================================================================

最佳答案

这些看起来像固定宽度的字段,这可能是简单字符串拆分的不错选择。看起来您可以使用正则表达式的唯一事情就是确定您正在查看的记录类型,尽管缩进级别对于确定这一点也很有用。

关于java - 在 Java 或 Python 中使用正则表达式灵活解析文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com