Java - Extraire les chaînes avec la Regex

J'ai cette chaîne

String myString ="A~BC~FGH~~zuzy|XX~ 1234~ ~~ABC~01/01/2010 06:30~BCD~01/01/2011 07:45";

et j'ai besoin d'extraire ces 3 chaînes
1234
06:30
07:45

Si j'utilise cette expression \\d{2}\:\\d{2} je suis seulement en mesure d'extraire la première heure 06:30

Pattern depArrHours = Pattern.compile("\\d{2}\\:\\d{2}");
Matcher matcher = depArrHours.matcher(myString);
String firstHour = matcher.group(0);
String secondHour = matcher.group(1); (IndexOutOfBoundException no Group 1)

matcher.groupe(1) lève une exception.
Aussi, je ne sais pas comment faire pour extraire 1234. Cette chaîne peut changer, mais il vient toujours après "XX~'
Avez-vous une idée sur la façon de combiner ces chaînes avec les expressions régulières?

Mise à JOUR

Merci à Adam suggestion j'ai maintenant cette regex qui correspondent à ma chaîne

Pattern p = Pattern.compile(".*XX~ (\\d{3,4}).*(\\d{1,2}:\\d{2}).*(\\d{1,2}:\\d{2})";

Je correspondre au nombre, et les 2 heures avec matcher.groupe(1); matcher.groupe(2); matcher.groupe(3);

Peux-tu montrer ton code? Qui doit correspondre à 06:30, offrant tout le reste est en ordre.

OriginalL'auteur mickthompson | 2009-08-03