Java - не могу найти дату с помощью регулярных выражений в этом тексте - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть текст, который также содержит даты такого типа: '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 правильный, потому что он работает для других регулярных выражений, чтобы найти другой тип текста, но на эту дату я думаю, что что-то не так в остальной части кода ... Может Вы видите проблему?

1 Ответ

3 голосов
/ 08 апреля 2011

Вы пропустили круглые скобки в регулярном выражении.

private static String PATTERN_DATE_REPORTED = "Date Reported([0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2})";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...