извлечение числа из строки в Java - PullRequest
3 голосов
/ 13 октября 2009

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

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

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

Ответы [ 2 ]

11 голосов
/ 13 октября 2009

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

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

Это выдаст

45
22
5 голосов
/ 13 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...