2009-10-13 61 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