【发布时间】:2014-01-25 05:15:37
【问题描述】:
我目前正在尝试测试与以下匹配的正则表达式模式
[#123456]
[#aabc36]
我尝试过#[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3} 并成功匹配#aabc36,但是在添加括号 [] 时失败了。
我尝试了以下匹配模式
[#[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}]
下面是我的正则替换方法
public String replaceColor(String text , String bbcode , String imageLocation ){
//"\\[("+bbcode+")\\]" for [369] , [sosad]
// String imageLocation = "file:///android_asset/smileyguy.png";
// builder.append("<img src=\"" + imageLocation + "\" />");
StringBuffer imageBuffer = new StringBuffer ("");
// Pattern pattern = Pattern.compile("\\"+bbcode);
Pattern pattern = Pattern.compile(Pattern.quote(bbcode));
Matcher matcher = pattern.matcher(text);
//populate the replacements map ...
StringBuilder builder = new StringBuilder();
int i = 0;
while (matcher.find()) {
//String orginal = replacements.get(matcher.group(1));
imageBuffer.append("<img src=\"" + imageLocation + "\" />");
String replacement = imageBuffer.toString();
builder.append(text.substring(i, matcher.start()));
if (replacement == null) {
builder.append(matcher.group(0));
} else {
builder.append(replacement);
}
i = matcher.end();
}
builder.append(text.substring(i, text.length()));
return builder.toString();
}
【问题讨论】: