问题描述
在Java
Regex中,Matcher.find()
(在String中的任意位置找到匹配项)和Matcher.matches()
(与整个String匹配)之间存在区别。
String仅具有一个matches()
方法(实现等效于以下代码:)Pattern.compile(pattern).matcher(this).matches();
,因此您需要创建一个与完整String匹配的模式:
System.out.println("I end with a number 4".matches("^.*\\d$"));
解决方法
我想测试一个字符串是否以a结束。我希望下面的Java行能打印出正确的文字。为什么打印错误?
System.out.println("I end with a number 4".matches("\\d$"));