任何人都可以在此代码中发现任何错误吗?
String value = "/files/etc/hosts/*";
if (value.matches("\\*$")) {
System.out.println("MATCHES!");
}
当字符串的最后一个字符是星号时,我正在尝试进行一些操作。
语法对我来说是正确的,我在http://regexpal.com/
上测试了它提前致谢!
答案 0 :(得分:15)
为什么不使用:
if (value.endsWith("*")) {
答案 1 :(得分:6)
如果正则表达式与整个CharSequence匹配,则String.matches()仅返回true。
尝试以下方法:
value.matches(".*?\\*$")
或者使用Pattern对象。
编辑:每条评论请求。
Pattern glob = Pattern.compile("\\*$");
if (glob.matcher(value).find()) {
System.out.println("MATCHES!");
}
答案 2 :(得分:3)
使用String
时,您需要匹配String#matches
中的所有内容:
if (value.matches(".*\\*$")) {