Ответ 1
вы должны получить группу захвата, в которой вы нуждаетесь. Прочитайте этот. Вы найдете ответ на свой вопрос.
Вот простой пример для вас. Я думаю, вы поймете это.
Pattern p = Pattern.compile(".*?(\\d{2}(am|pm)).*");
Matcher m = p.matcher("go to the shop at 12pm");
if(m.matches())
return m.group(1);
Это вернет 12pm
На самом деле вы можете получить то, что хотите, с лучшим способом.
Pattern p = Pattern.compile("\\d{2}(am|pm)");
Matcher m = p.matcher("go to the shop at 12pm");
if(m.find())
return m.group(0); //or you can write return m.group(); result will be the same.