我的正则表达式返回false,无法理解为什么。
Pattern patt = Pattern.compile("\\d+");
patt.matcher("a 18c1").matches(); //returning false
我还尝试了[0-9]+
,(\\d+)
,([0-9]+)
,他们也没有工作......
你能帮助我吗?感谢
答案 0 :(得分:0)
这是因为您使用.matches()
。你想要的是.find()
。
.matches()
用词不当;它将尝试匹配整个输入。使用.find()
完成正则表达式匹配:
final Matcher matcher = patt.matcher("a 18c1");
if (matcher.find())
System.out.println(matcher.group());