2009-10-13 34 views
3

我有一个内部有数字的字符串,我想检索该数字。 例如,如果我有一个字符串“BLA BLA BLA 45 BLA”我想45 我已经搜索了一下,发现这个代码应该使工作从Java中的字符串中提取数字

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

数量,但它不”牛逼:(
可能的问题是,“\ d +”正则表达式转换为“^ \ d + $”等的匹配不匹配的文本内的号码。
任何想法。

回答

5

你应该改为使用matcher.find()

+0

感谢快速回答。 – jutky 2009-10-13 06:12:04

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