我需要从这个字符串中提取日期:
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
答案 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(如果它存在于字符串中)的匹配项