我想用匹配项的编号/索引替换匹配项。
java中有没有办法知道当前匹配的匹配号,这样我就可以只使用replaceAll(regex, replacement)
将每个匹配的计数注入到结果中?
示例:将[A-Z]
替换为它本身及其索引:
Input: fooXbarYfooZ
Output: fooX1barY2fooZ3
例如:
"fooXbarXfooX".replaceAll("[A-Z]", "$0<some reference to the match count>");
应返回"fooX1barY2fooZ3"
注意:我在replaceAll()
(或类似方法)的单个调用中寻找一个 replacement String,它完成了整个工作。
使用不止一个方法调用的答案,例如在for
循环中 Package 替换操作,没有回答问题。
4条答案
按热度按时间6ojccjat1#
需要迭代输入字符串,因此循环是不可避免的。标准API没有实现实现该循环的方法,因此循环必须在客户端代码或第三方库中。
下面是代码的外观btw:
用法:
输出:
jecbmhm32#
在Java中没有循环是不可能的...
5uzkadbs3#
Java regex不支持对匹配计数的引用,因此这是不可能的。
ddarikpa4#
我不认为在Java中没有任何循环是可能的。