2014-10-29 74 views
0

我想知道是否有一个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),以获得提取的值。

回答

0

用java可以使用正则表达式的Named Groups。通过这种方式,可以实现类似于SimpleDateFormat解析器的东西。

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

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

随着matcher.group("satellite")被用来获取07

1

看来你想要正则表达式解析(又名正则表达式)。 退房MatcherPattern。 这些链接指向java 7 API, ,但这两个类自java 1.5(或之前)开始出现。