我有以下可能的字符串模式(空格是可变的):

2-4 Jun
8-11 Jun
8 Jun-11 Jun
20-Jun
28 Jun-01 Jul
15-18 Jun


我想将Java日期转换为一或两个。

任何正则表达式快捷方式吗? Iam迁移旧版Excel电子表格(如果有所作为,则该列未格式化)

最佳答案

如果我正确理解了您的问题,请参考以下代码片段,或者至少为您提供基本知识:

Matcher m = Pattern.compile("(\\d+)-(\\d+)?\\s*(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)").matcher(input);
while (m.find()) {
    if (m.groupCount()==3) {
        int first = Integer.valueOf(m.group(1));
        int second = Integer.valueOf(m.group(2));
        String month = m.group(3);
        // DO something here
    } else {
        int first = Integer.valueOf(m.group(1));
        String month = m.group(2);
        // Do something here
    }
}

09-11 00:43