извлечение числа из строки в Java

У меня есть строка с номером внутри, и я хочу получить этот номер. например, если у меня есть строка «бла бла 45 бла бла», я хочу получить число 45. Я немного искал и обнаружил, что этот код должен работать

Matcher matcher = Pattern.compile("\\d+").matcher("bla bla 45 bla bla");
if(matcher.matches())
    String result = matcher.group();

но это не так :(
возможно, проблема в том, что регулярное выражение "\ d +" преобразуется в "^ \ d + $", и поэтому средство сопоставления не соответствует числу внутри текста.
Любые идеи.

13.10.2009 06:08:56
2 ОТВЕТА
РЕШЕНИЕ

Вы должны использовать matcher.find()вместо этого.

5
13.10.2009 06:10:27

Вот пример того, как использовать matcher.find ()

    Matcher matcher = Pattern.compile("\\d+").matcher("bla bla 45 bla 22 bla");
    while(matcher.find()) {
        System.out.println(matcher.group());
    }

Это будет выводить

45
22
11
13.10.2009 06:16:27