Java - 正则表达式从字符串中提取日期

时间:2015-11-25 18:18:32

标签: java regex date extract extraction

我需要从这个字符串中提取日期:

BB告知:在04/10,11:28购买您的票证,最终卡号xxxx,$ 00,00。如果您不认识致电40032 2412。

也是完整日期04/10/2015

日期模式为dd / MM或dd / MM / yyyy

代码:

字符串mydata =" BB告知:在04/10,11:28购买您的票号,最终卡号xxxx,$ 00,00。如果您不认识致电40032 2412。";

    Pattern p = Pattern.compile("(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d");
    Matcher m = p.matcher(mydata);

结果: m.matches()== false

2 个答案:

答案 0 :(得分:5)

您可以尝试使用此正则表达式:

Matcher m = Pattern.compile("(\\d{1,2}/\\d{1,2}/\\d{4}|\\d{1,2}/\\d{1,2})", Pattern.CASE_INSENSITIVE).matcher(string);
        while (m.find()) {
            System.out.println(m.group(1));
        }

寻找DD / MM模式,然后寻找DD / MM / YYYY。

选中此Link

答案 1 :(得分:0)

Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); 
  Matcher matcher = pattern.matcher(string);

        while (matcher.find()) {
            System.out.println("Full match: " + matcher.group(0));

        }

Pattern.MULTILINE 确保它正在搜索 DD/MM 或 DD/MM/YYYY(如果它存在于字符串中)的匹配项