从Java中的字符串中提取数字

jut*_*tky 3 java regex string numbers

我有一个带有数字的字符串,我想要检索该数字.例如,如果我有一个字符串"bla bla 45 bla bla"我想得到数字45.我已经搜索了一下,发现这段代码应该能够完成工作

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

但它没有:(
可能问题是"\ d +"正则表达式转换为"^\d + $",因此匹配器与文本内部的数字不匹配.
任何想法.

bri*_*gge 11

这是一个关于如何使用matcher.find()的示例

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

这将输出

45
22
Run Code Online (Sandbox Code Playgroud)


tan*_*ens 5

你应该使用matcher.find().