Почему это регулярное выражение терпит неудачу? - PullRequest
1 голос
/ 08 апреля 2011

У меня есть файл PCL, и я открываю его с помощью Notepad ++ для просмотра исходного кода (с помощью PCL Viewer я вижу конечные результаты, но мне также нужно просмотреть исходный код).

enter image description here

Пожалуйста, смотрите номер лаборатории и остальные символы. Я могу извлечь номер лаборатории и ее код с помощью этого регулярного выражения:

private static String PATTERN_LABNUMBER = "Lab Number[\\W\\D]*(\\d*)";

и это дает мне:

0092616281

Теперь я хочу извлечь Date Reported и использую это регулярное выражение (после многих других попыток):

private static String PATTERN_DATE_REPORTED =
        "Date Reported[\\W\\D]*(\\d\\d/\\d\\d/\\d\\d\\d\\d \\d\\d:\\d\\d)";

но он не находит его в файле PCL.

Я также пытался с:

private static String PATTERN_DATE_REPORTED =
        "Date Reported[\\W\\D]*([0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2})";

но тот же не найденный результат ... Вы видите, где я что-то упускаю в этом последнем регулярном выражении?

Большое спасибо!

UPDATE

Я использую этот код Java для извлечения номера лаборатории и указанной даты:

 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()) {
                System.out.println("Matcher found for regextype "+regextype);
                matchedString = matcher.group(0);
                if (matcher.groupCount() > 0) {
                    matchedString = matcher.group(1);
                }
            }
        }
        return matchedString;
    }

1 Ответ

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

Вот код для выполнения того, что вы хотите ..

       Pattern pattern =  Pattern.compile("Date Reported.*(\\d{2}/\\d{4} \\d{2}:\\d{2})$", Pattern.MULTILINE);
        String st = "date dfdsfsd fgfd gdfgfdgdf gdfgdfg gdfgdf 3232/22/2010 23:34\n"+
        "dsadsadasDate Reported gdfgfd gdfgfdgdf gdfgdfg gdfgdf 3232/22/2010 23:34";
        Matcher matcher = pattern.matcher(st);
        while (matcher.find()) {
            System.out.println(matcher.group(1));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...