См. код:

		String str = "Адрес: пр. Независимости, дом 54, корпус 37c, офис 405b";
		ArrayList<String> list = new ArrayList<>();
		Pattern p = Pattern.compile("[0-9]{1,}[a-zA-Zа-яА-Я]*{1,}");
		Matcher m = p.matcher(str);
		         
		while(m.find()) {
		    list.add(m.group());
		
		}

		System.out.println("Найденные данные " + list);
			
		ArrayList<String> list2 = new ArrayList<>();
		
		//тут мы в скобках заключаем подгруппу ([a-zA-Zа-яА-Я]*{1,})
		Pattern p2 = Pattern.compile("[0-9]{1,}([a-zA-Zа-яА-Я]*{1,})");
		Matcher m2 = p2.matcher(str);
		
		while(m2.find()) {
			//тут добавляется подгруппа, т.е. символы, которые идут сразу после цифр
		    list2.add(m2.group(1));		
		}
		
		System.out.println("Найденные данные " + list2);

Вывод на консоль:

Найденные данные [54, 37c, 405b]
Найденные данные [, c, b]

Реклама