【问题标题】:Configurable String parser similar to Date parsers类似于日期解析器的可配置字符串解析器
【发布时间】:2014-10-29 19:26:23
【问题描述】:

我想知道是否有一个 java 库,它可以以与日期解析器类似的方式解析字符串。例如,使用 SimpleDateFormat 类可以定义一个模式 (yyMMddHHmmssZ) 来解析字符串 (010704120856-0700) 以获取日期。我不想解析日期,而是解析任意数字。

例如我希望能够解析:

String:  X0759502.CSV
Pattern: DSSIYYMM.CSV   
   X -> Data version:
         'X' GOES X-ray
         'M' GOES Magnetometer
         'P' GOES Electrons, Protons & Alpha particles.
   07 -> GOES-7, 91 = SMS-1, 92=SMS-2, etc.
    3 -> 3-second values
   YY -> year
   MM -> month

然后例如获取一个哈希图,我可以在其中使用关键字(例如 YY)来获取提取的值。

【问题讨论】:

    标签: java parsing pattern-matching


    【解决方案1】:

    看来您需要正则表达式解析(又名正则表达式)。 查看MatcherPattern。 这些链接指向 java 7 API, 但是这两个类自 java 1.5(或之前)以来就已经存在。

    【讨论】:

      【解决方案2】:

      使用 java 可以使用 Regex 的Named Groups。通过这种方法,可以实现类似于SimpleDateFormat 解析器的东西。

      为了解析提供的示例 (X0759502.CSV),使用了这个正则表达式:

      x(?<satellite>\\d{2})(?<interval>\\d)(?<year>\\d{2})(?<month>\\d{2}).csv$
      

      matcher.group("satellite") 来获取07

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-21
        • 1970-01-01
        • 1970-01-01
        • 2019-02-15
        • 2014-02-18
        • 1970-01-01
        相关资源
        最近更新 更多