我有一个带有数字的字符串,我想要检索该数字。 例如,如果我有一个字符串“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 + $”,因此匹配器与文本内的数字不匹配。
任何想法。
答案 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()
代替。