java - 是否可以使用 $x 从 Matcher 获取组?

标签 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字段从Matcher返回匹配的组? I searched through the docs ,但找不到方法。

(另外,$2 组号叫什么?使用 $?)

最佳答案

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

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

其中 AMReg.LocLink.getPlace() 返回组 # 1、2 等

关于java - 是否可以使用 $x 从 Matcher 获取组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261867/

相关文章:

java - 如何使用 MigLayout?

java - 将 PDF 与 iText 合并会导致关闭时出现 "Do you want to save changes...?"对话框

java - 中缀到后缀

javascript - 使用 Javascript 正则表达式替换 "name"属性

javascript - 使用javascript正则表达式获取字符串中的最后一个数字

java - 在嵌入式模式下启动elasticsearch时如何设置日志记录

java - 使用级联 Hibernate 插入

jquery - 数据表精确单词搜索

java - jsf 正则表达式验证期间允许使用 ascii 字符

python - 如何使用正则表达式来帮助抓取网络数据?