Zadanie polega na "wyłuskaniu" z pliku tekstowego wszystkich dat i ich wypisanie na konsoli (daty są w formacie yyyy-mm-dd).
Ze sprawdzeniem poprawności daty sobie poradziłem (odpowiednia liczba dni, lata przestępne itp.), natomiast problem dotyczy samego wybrania dat z pliku. Próbowałem używać wyrażeń regularnych, ale natrafiłem na problemy następujące:
Jeżeli przykładowy plik zawiera dane w postaci: 20999-11-11aaa2007-01-12, 2009-03-111aa 2012-12-12, to użycie
String regex = "([0-9][0-9][0-9][0-9])\\-+([0-1][0-9])\\-+([0-3][0-9])"
wypisze także nieprawidłowo 0999-11-11 i 2009-03-11
Próbowałem zmienić wyrażenie regularne na
String regex = "([^0-9][0-9][0-9][0-9][0-9])\\-+([0-1][0-9])\\-+([0-3][0-9])"
albo String regex = "([0-9][0-9][0-9][0-9])\-+([0-1][0-9])\-+([0-3][0-9][^0-9])"
, ale zawsze czegoś jest za dużo...
Macie jakieś sugestie jak zrobić to najprościej?