我有一个格式为${something}
的字符串,并希望使用Java中的正则表达式提取something
。这是我的代码:
String tmp = null;
Pattern pVars = Pattern.compile("\\$\\{([^}]*)\\}");
Matcher mVars = pVars.matcher(vars[0]);
if (mVars.find())
{
tmp = mVars.group();
}
但在这种情况下,我得到了完整的字符串。
答案 0 :(得分:3)
您仍然在提取整个模式而不是括号内的组。这是group
在没有参数时的行为方式。
通过将1
作为参数传递来指定第一个捕获组:
tmp = mVars.group(1);
答案 1 :(得分:1)
使用group(1)
访问您的表达式中()
取消标记的内部群组。