Java 类似于日期分析器的可配置字符串分析器

Java 类似于日期分析器的可配置字符串分析器,java,parsing,pattern-matching,Java,Parsing,Pattern Matching,我想知道是否有一个java库,它可以像日期解析器一样解析字符串。例如,使用SimpleDataFormat类,可以定义模式(YYMMDDHHMMSZ)来解析字符串(010704120856-0700)以获取日期。我想解析任意数字,而不是解析日期 例如,我希望能够解析: String: X0759502.CSV Pattern: DSSIYYMM.CSV X -> Data version: 'X' GOES X-ray 'M' GOES M

我想知道是否有一个java库,它可以像日期解析器一样解析字符串。例如,使用
SimpleDataFormat
类,可以定义模式(
YYMMDDHHMMSZ
)来解析字符串(
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,在这里我可以使用关键字(ex.YY)来获取提取的值。

您似乎需要正则表达式解析(aka regex)。 退房并离开。 这些链接指向java 7 API,
但这两个类都是从Java1.5(或更早)开始出现的。

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

要分析提供的示例(
X0759502.CSV
),使用以下正则表达式:

x(?<satellite>\\d{2})(?<interval>\\d)(?<year>\\d{2})(?<month>\\d{2}).csv$
x(?\\d{2})(?\\d)(?\\d{2})(?\\d{2}).csv$
使用
matcher.group(“卫星”)
获取
07