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