问题描述
我想用匹配的数字/索引替换匹配。
I would like to replace a match with the number/index of the match.
在java正则表达式中有没有办法知道当前匹配的是哪个匹配号,所以我可以使用 String.replaceAll(正则表达式,替换)
?
Is there way in java regex flavour to know which match number the current match is, so I can use String.replaceAll(regex, replacement)
?
示例:替换 [AZ]
与其本身及其索引:
Example: Replace [A-Z]
with itself and its index:
Input: fooXbarYfooZ
Output: fooX1barY2fooZ3
即此电话:
"fooXbarXfooX".replaceAll("[A-Z]", "$0<some reference to the match count>");
应该返回fooX1barY2fooZ3
注意:我正在寻找可以执行此操作的替换字符串(如果存在)。
Note: I'm looking a replacement String that can do this, if one exists.
请不要提供涉及循环或类似代码的答案。
我会接受最优雅的答案(即使它使用循环)。目前没有答案
实际工作。
I'll accept the most elegant answer that works (even if it uses a loop). No current answers
actually work.
推荐答案
Java正则表达式不支持对计数的引用匹配,所以这是不可能的。
Java regex does not support a reference to the count of the match, so it is impossible.
这篇关于正则表达式替换为匹配的计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!