显示了Android Java正则表达式替换重复模式
我有以下bbcodes,比如[369]要转换成显示了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
但是当涉及到替换多个项目时,例如
[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的形式呈现,并且您清楚地解释了您的预期输出,我们可以帮助您找出错误所在。非常感谢。这是亲吻原则的一个很好的例子。