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

Java - Regex extract date from string

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

BB 通知:购买您的票,最终卡号 xxxx,$ 00,00,04 月 10 日,11:28。如果您不认识请拨打 40032 2412。

还有完整日期 04/10/2015

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

代码:

字符串 mydata = "BB inform: buy your tickect, final card number xxxx, $ 00,00, on 04/10, at 11:28. If you don't recognize call 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() == 假

你可以试试这个正则表达式:

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

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 的匹配项(如果它存在于字符串

中)