Java matcher没有';t返回等待的值和组

Java matcher没有';t返回等待的值和组,java,regex,Java,Regex,我有以下代码 String regexString = "[^']*'(\\w+)'[^']*'(\\w+)'"; message = "Duplicate entry 'admin' for key 'username'"; Pattern pattern = Pattern.compile(regexString); Matcher matcher = pattern.matcher(message); if (matcher.mathces()){ String key = mat

我有以下代码

String regexString = "[^']*'(\\w+)'[^']*'(\\w+)'";
message = "Duplicate entry 'admin' for key 'username'";
Pattern pattern = Pattern.compile(regexString);
Matcher matcher = pattern.matcher(message);
if (matcher.mathces()){
    String key = matcher.group(2);
    String value = matcher.group(1);
}

虽然value变量从message(admin)键获得正确的值,而不是username值,但它存储整个消息。在在线正则表达式编辑器上运行我的消息和正则表达式可以得到正确的值,如。我错过了什么吗?

对我来说就像一个符咒。尽管您拼错了
matcher.mathces()
;-)我会使用
“[^']*'([^']+)”[^']*'([^']+)”
来拥有一个无需前瞻的匹配器,但您的版本也应该可以正常工作!可能原始代码混淆了变量/字段、其他匹配器/模式/消息。或者消息以空格或句点(
\r
?)结尾。消息来自Throwable的getMessage()方法。没有时间。调试器准确地显示了我为您编写的内容
“重复输入'admin'作为键'username'”
。不太确定。实际和预期的行为是什么?你想干什么?不清楚你在问什么。