我有以下代码
String expression="a weird case of {asda}something";
Pattern aPattern=Pattern.compile("\\{(.*?)\\}");
Matcher matcher = aPattern.matcher(expression);
boolean match = matcher.matches();
这将永远抛出
Exception in thread "main" java.lang.IllegalStateException: No match found
我不明白为什么它找不到匹配。输出应为{asda}
。有什么想法吗?
答案 0 :(得分:4)
Matcher#matches()
尝试匹配整个String
。在您的情况下,您提供的正则表达式与整个表达式不匹配。你想要的是find()
,可能还有group()
来获得结果。