可配置的字符串解析器类似于Date解析器

时间:2014-10-29 19:26:24

标签: java parsing pattern-matching

我想知道是否有一个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

然后例如获取一个hashmap,我可以使用关键字(例如YY)来获取提取的值。

2 个答案:

答案 0 :(得分:1)

看起来你想要正则表达式解析(又名正则表达式)。 查看MatcherPattern。 链接到java 7 API, 但是这两个类自java 1.5(或之前)以来一直存在。

答案 1 :(得分:0)

使用java可以使用正则表达式Named Groups。通过该方法,可以实现类似于SimpleDateFormat解析器的功能。

要解析提供的示例(X0759502.CSV),请使用此正则表达式:

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

matcher.group("satellite")用于获取07

相关问题