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

时间:2009-10-13 06:08:57

标签: 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();

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

2 个答案:

答案 0 :(得分:11)

以下是如何使用 matcher.find()

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

这将输出

45
22

答案 1 :(得分:5)

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