Очень часто есть обычная строка, а из неё нужно достать данные. Например, есть строка с адресом, а нам нужно достать индекс. Мы точно знаем, что индекс — это пять цифр подряд и в строке больше не будет этих данных. Пример:

String str = "пр. Независимости, дом 54, корпус 3, индекс 12345, этаж 8";

Pattern p = Pattern.compile("[0-9]{5}");
Matcher m = p.matcher(str);
		
//булевский метод, проверяет, есть ли совпадения по регулярке:
if (m.find()) {	
//печатаем индекс
	System.out.println("Индекс: " + m.group());
} else {
	System.out.println("Индекс не найден");
}

В данном случае в результате работы программы выводится :

Индекс: 12345

Усложним задачу:
Найти все цифры в строке:

String str = "Адрес: пр. Независимости, дом 54, корпус 3, офис 405";
ArrayList<String> list = new ArrayList<>();
Pattern p = Pattern.compile("[0-9]{1,}");
Matcher m = p.matcher(str);
		
while(m.find()) {
	list.add(m.group());
}
		
System.out.println("Найденные данные " + list);
System.out.println("Число элементов " + list.size());
Реклама