Java - Извлечение строк с помощью Regex
ве эту строку
String myString ="A~BC~FGH~~zuzy|XX~ 1234~ ~~ABC~01/01/2010 06:30~BCD~01/01/2011 07:45";
и мне нужно извлечь эти 3 подстроки
1234
6:30
7:45
Если я использую это регулярное выражение \\ d {2} \: \\ d {2} I 'м только в состоянии извлечь первый час 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.group (1) выдает исключение.
Также я нене знаю, как извлечь 1234. Эта строка может измениться, но она всегда идет после 'XX ~ '
Есть ли у вас какие-либо идеи о том, как сопоставить эти строки с выражениями регулярных выражений?
ОБНОВИТЬ
Благодаря предложению Адама ятеперь это регулярное выражение, которое соответствует моей строке
Pattern p = Pattern.compile(".*XX~ (\\d{3,4}).*(\\d{1,2}:\\d{2}).*(\\d{1,2}:\\d{2})";
Я сопоставляю число и 2 часа с matcher.group (1); matcher.group (2); matcher.group (3);