用正则表达式从字符串中提取符号

时间:2014-07-16 14:40:01

标签: java regex

我有一个格式为${something}的字符串,并希望使用Java中的正则表达式提取something。这是我的代码:

String tmp = null; 
Pattern pVars = Pattern.compile("\\$\\{([^}]*)\\}");
Matcher mVars = pVars.matcher(vars[0]);
if (mVars.find())
{
         tmp = mVars.group();
}

但在这种情况下,我得到了完整的字符串。

2 个答案:

答案 0 :(得分:3)

您仍然在提取整个模式而不是括号内的组。这是group在没有参数时的行为方式。

通过将1作为参数传递来指定第一个捕获组:

tmp = mVars.group(1);

答案 1 :(得分:1)

使用group(1)访问您的表达式中()取消标记的内部群组。