У меня есть текст, который также содержит даты такого типа: 'Date Reported26/09/2010 08:22
', и я хочу извлечь дату с помощью регулярного выражения (поскольку дата в этих налогах отличается, поэтому я использую это регулярное выражение:
private static String PATTERN_DATE_REPORTED = "Date Reported[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}";
и сделайте извлечение как:
if ((value = extractWithRegEx(PATTERN_DATE_REPORTED, text)) != null) {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
try {
metadata.setDateReported(df.parse(value));
System.out.println("Succesfully converted report date: "+metadata.getDateReported().toString());
} catch (ParseException e) {
System.out.println("Exception occured when converting report date: "+ e.getMessage());
}
}else{
System.out.println("Date Reported not found by this regex");
}
где extractWithRegEx определяется как:
public String extractWithRegEx(String regextype, String input) {
String matchedString = null;
if (regextype != null && input != null) {
Matcher matcher = Pattern.compile(regextype).matcher(input);
if (matcher.find()) {
matchedString = matcher.group(0);
if (matcher.groupCount() > 0) {
matchedString = matcher.group(1);
}
}
}
return matchedString;
}
Проблема: он не находит мою дату на основе приведенного выше регулярного выражения.
Я уверен, что extractWithRegEx
правильный, потому что он работает для других регулярных выражений, чтобы найти другой тип текста, но на эту дату я думаю, что что-то не так в остальной части кода ... Может Вы видите проблему?