Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
显示了Android Java正则表达式替换重复模式_Java_Android_Regex - Fatal编程技术网

显示了Android Java正则表达式替换重复模式

显示了Android Java正则表达式替换重复模式,java,android,regex,Java,Android,Regex,我有以下bbcodes,比如[369]要转换成 但是当涉及到替换多个项目时,例如 [369] [369] [369] [369] ,它将分别与以下替换字符串1、2、3、4个标记一起替换,总计10个 <img src ...http// /> <img src ...http// /><img src ...http// /> <img src ...http// /><img src ...http// /><img s

我有以下bbcodes,比如[369]要转换成

但是当涉及到替换多个项目时,例如

 [369] [369] [369] [369]
,它将分别与以下替换字符串1、2、3、4个标记一起替换,总计10个

<img src ...http// />   <img src ...http// /><img src ...http// />  <img src ...http// /><img src ...http// /><img src ...http// />   <img src ...http// /><img src ...http// /><img src ...http// /><img src ...http// />

输入

班仔比人陰返轉頭[369] [369] [369] <br/>BTW大家入黎咩都傾下,我地好warm的#yup# #yup# #yup#
班仔比人陰返轉頭[369][369][369]
顺便说一句大家入黎咩都傾下,我地好温暖的的#是的,是的#
我想实现字符串替换并提供 期望输出:

班仔比人陰返轉頭<img src ...http// /> <img src ...http// /><img src ...http// />  <br/>BTW大家入黎咩都傾下,我地好warm的<img src ...http// /><img src ...http// /><img src ...http// />
班仔比人陰返轉頭   
顺便说一句大家入黎咩都傾下,我地好温暖的的
但是当涉及到执行的时候。。 实际产量:

班仔比人陰返轉頭<img src ...http// />       <img src ...http// /><img src ...http// />  
    <img src ...http// /><img src ...http// /><img src ...http// />  <br/>BTW大家入黎咩都傾下,我地好warm的<img src ...http// />       <img src ...http// /><img src ...http// />  
    <img src ...http// /><img src ...http// /><img src ...http// /> 
班仔比人陰返轉頭         

顺便说一句大家入黎咩都傾下,我地好温暖的的
请您帮我检查一下是否有任何while循环导致重复更换发生

以下是我的代码:

public String replace(String text , String bbcode , String imageLocation ){


            StringBuffer imageBuffer = new StringBuffer (""); 
            Pattern pattern = Pattern.compile(Pattern.quote(bbcode));
            Matcher matcher = pattern.matcher(text);

            StringBuilder builder = new StringBuilder();
            int i = 0;
            while (matcher.find()) {


                imageBuffer.append("<img src=\"" + imageLocation + "\" />");
                String replacement = imageBuffer.toString();
                builder.append(text.substring(i, matcher.start()));

                if (replacement == null) {
                    builder.append(matcher.group(0));
                    break;
                } else {
                    builder.append(replacement);
                }

                i = matcher.end();
            }

            builder.append(text.substring(i, text.length()));
            return builder.toString();
        }
公共字符串替换(字符串文本、字符串bbcode、字符串图像位置){
StringBuffer imageBuffer=新的StringBuffer(“”);
Pattern=Pattern.compile(Pattern.quote(bbcode));
Matcher Matcher=pattern.Matcher(文本);
StringBuilder=新的StringBuilder();
int i=0;
while(matcher.find()){
imageBuffer.append(“”);
字符串替换=imageBuffer.toString();
append(text.substring(i,matcher.start());
如果(替换==null){
builder.append(matcher.group(0));
打破
}否则{
附加(替换);
}
i=matcher.end();
}
append(text.substring(i,text.length());
返回builder.toString();
}

如果我理解你的意思,你需要用一个字符串替换所有的模式出现,这样你就可以简单地执行以下操作:

public String replace(String text , String bbcode , String imageLocation ){
    return text.replaceAll(Pattern.quote(bbcode), "<img src=\"" + imageLocation + "\" />");
}
公共字符串替换(字符串文本、字符串bbcode、字符串图像位置){
返回text.replaceAll(Pattern.quote(bbcode),“”);
}

希望有帮助。

bbcode的确切值是多少??如果没有可用的代码示例,将很难回答您的问题。请将您的代码发布为演示您的问题的代码。njzkj:[268],[459],任何用于转换为forumDuncan的图像图标的代码:我已提供并从logcat获取messages@RajuGujarati我觉得你的问题很难理解。但是,如果您的代码以SSCCE的形式呈现,并且您清楚地解释了您的预期输出,我们可以帮助您找出错误所在。非常感谢。这是亲吻原则的一个很好的例子。