Java 是否可以在String.replaceAll中使用当前替换的编号?

Java 是否可以在String.replaceAll中使用当前替换的编号?,java,regex,string,Java,Regex,String,是否可以将当前替换的编号(计数)放入正在进行的替换中 因此,“qqq.replaceAll((q)”,“something:$1”)将导致“1:q2:q3:q” 是否有任何东西可以替换上面代码中的内容,以使其解析为当前替换计数?否,而不是使用replaceAll方法。唯一的反向参考是\n,其中n是匹配的第n个捕获组。这里有一种方法: StringBuffer resultString = new StringBuffer(); String subjectString = new String(

是否可以将当前替换的编号(计数)放入正在进行的替换中

因此,
“qqq.replaceAll((q)”,“something:$1”)
将导致
“1:q2:q3:q”


是否有任何东西可以替换上面代码中的内容,以使其解析为当前替换计数?

否,而不是使用
replaceAll
方法。唯一的反向参考是
\n
,其中n是匹配的第n个捕获组。

这里有一种方法:

StringBuffer resultString = new StringBuffer();
String subjectString = new String("qqqq");
Pattern regex = Pattern.compile("q");
Matcher regexMatcher = regex.matcher(subjectString);
int i = 1;
while (regexMatcher.find()) {
   regexMatcher.appendReplacement(resultString, i+":"+regexMatcher.group(1)+" ");
   i++;
}
regexMatcher.appendTail(resultString);
System.out.println(resultString);

为此,您必须创建自己的replaceAll()方法

这有助于您:

public class StartTheClass 
{       
public static void main(String[] args) 
{       
    String string="wwwwww";
    System.out.println("Replaced As: \n"+replaceCharector(string, "ali:", 'w'));    
}

public static String replaceCharector(String original, String replacedWith, char toReplaceChar)
{
    int count=0;
    String str = "";
    for(int i =0; i < original.length(); i++)
    {
        
        if(original.charAt(i) == toReplaceChar)
        {
            str += replacedWith+(count++)+" ";//here add the 'count' value and some space;
        }
        else
        {
            str += original.charAt(i);
        }
        
    }
    return str;
}   
}
公共类开始类
{       
公共静态void main(字符串[]args)
{       
String String=“ww”;
System.out.println(“替换为:\n”+replaceCharector(字符串,“ali:”,“w”);
}
公共静态字符串replaceCharector(字符串原始、字符串replacedWith、字符到替换字符)
{
整数计数=0;
字符串str=“”;
对于(int i=0;i
我得到的结果是:

替换为:

阿里:0阿里:1阿里:2阿里:3阿里:4阿里:5阿里


谢谢,虽然我的问题答案是否定的,但你的方法是最接近的