是否可以使用$ x从Matcher获得一个组?

时间:2014-03-07 22:23:05

标签: java regex

我正在尝试执行以下操作:

Matcher m = Pattern.compile(AMReg.LocLink.regEx()).matcher(input);

if(m.find()) {
 urlStr = URLEncoder.encode(m.group(AMReg.LocLink.getPlace(1)), "US-ASCII");
}

AMReg是一个枚举。 regEx()返回要搜索的正则表达式,getPlace(x)返回通常在replaceAll中使用的组编号,因此它是$1$2而不是使用的标准整数在m.group(x);

是否可以使用$2字段从匹配器返回匹配的组? I searched through the docs,但无法找到办法。

(另外,所谓的$2组号是什么?使用$?)

1 个答案:

答案 0 :(得分:3)

您可以使用Matcher.group (int groupNum)

m.group ( AMReg.LocLink.getPlace() );

AMReg.LocLink.getPlace()返回组#1,2等