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

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

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

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

您应该使用matcher.find()代替。

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

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

这将输出

 45 22