简单java正则表达式不匹配

简单java正则表达式不匹配,java,regex,Java,Regex,我的正则表达式返回错误,无法理解为什么 Pattern patt = Pattern.compile("\\d+"); patt.matcher("a 18c1").matches(); //returning false 我也试过[0-9]+,(\\d+),([0-9]+),它们也不起作用。。 你能帮助我吗?谢谢这是因为您使用了.matches()。你想要的是 .matches()用词不当;它将尝试与整个输入匹配。正则表达式匹配是使用.find()完成的: 好的,然后我尝试调用patt.ma

我的正则表达式返回错误,无法理解为什么

Pattern patt = Pattern.compile("\\d+");
patt.matcher("a 18c1").matches(); //returning false
我也试过
[0-9]+
(\\d+)
([0-9]+)
,它们也不起作用。。
你能帮助我吗?谢谢

这是因为您使用了
.matches()
。你想要的是

.matches()
用词不当;它将尝试与整个输入匹配。正则表达式匹配是使用
.find()
完成的:


好的,然后我尝试调用patt.matcher(“a 18c1”).group(),它返回java.lang.IllegalStateException:No match Found这是正常的;您不需要调用
.find()
!需要初始化
匹配器
。请参见编辑。
final Matcher matcher = patt.matcher("a 18c1");
if (matcher.find())
    System.out.println(matcher.group());