在Java中使用命名而不是编号的捕获组是否有缺点?

在Java中使用命名而不是编号的捕获组是否有缺点?,java,regex,capture-group,Java,Regex,Capture Group,当我使用正则表达式时,我倾向于使用命名捕获组。我发现它们消除了很多混乱,因此,您不需要计算出您的组之前的组数,只需给组添加自己的标签,就可以访问它,而无需进一步思考。尽管如此,我在这个网站上看到了大多数正则表达式的例子,甚至在使用编号捕获组的新答案中,我不确定他们是否知道我不知道的东西,或者我是否知道他们不知道的东西。我的问题是,使用命名组而不是编号组(例如性能等)有什么缺点吗?部分原因可能是因为Matcher在java 7之前没有group(String)方法(我相信,在java 5中肯定没有

当我使用正则表达式时,我倾向于使用命名捕获组。我发现它们消除了很多混乱,因此,您不需要计算出您的组之前的组数,只需给组添加自己的标签,就可以访问它,而无需进一步思考。尽管如此,我在这个网站上看到了大多数正则表达式的例子,甚至在使用编号捕获组的新答案中,我不确定他们是否知道我不知道的东西,或者我是否知道他们不知道的东西。我的问题是,使用命名组而不是编号组(例如性能等)有什么缺点吗?

部分原因可能是因为
Matcher
在java 7之前没有
group(String)
方法(我相信,在java 5中肯定没有);因此,为了向后兼容,人们使用编号的组。我想在调用
方法时,regex解析器必须获得您的名字和
字符串
构造(可能)会带来额外的性能影响。但我怀疑这些问题是否值得关注。