匹配下面的模式:
[black]something[/black] [orange]something[/orange]
然后改为HTML代码:<span style="color:black">something</span>
但是并没有配对修改成 [black]hello[/orange]
怎么使用正则表达式来识别?
public static String bbcode(String text) {
String html = text;
Map<String,String> bbMap = new HashMap<String , String>();
bbMap.put("\\[black\\](.+?)\\[/black\\]", "<span style='color: black;'>$1</span>");
bbMap.put("\\[orange\\](.+?)\\[/orange\\]", "<span style='color: orange;'>$1</span>");
// add other colors
for (Map.Entry entry: bbMap.entrySet()) {
html = html.replaceAll(entry.getKey().toString(), entry.getValue().toString());
}
return html;
}
不需要正则吧
这部分不变
something这部分不变
每个颜色定义一部分字段 类似:String sBlack = "<span style="color:black"></span>";
if(yourString.constains("[black]"&&yourString.constains("[/black]")) {
//替换内容
//中间加入不变的something
}