Java 类似于日期分析器的可配置字符串分析器
我想知道是否有一个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
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