android - 在 android app/java 中匹配 BB 颜色代码

标签 android regex

如果我想匹配以下模式

[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;
}

关于android - 在 android app/java 中匹配 BB 颜色代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915206/

相关文章:

android - 寻找与当前数据相似度高的数据?

javascript - 无法在javascript中测试正则表达式

javascript - 将字符串拆分为键/值的最简单方法

android - 翻译动画按钮后点击不起作用

java - 从 Activity 返回结果

ruby - Ruby 正则表达式中的递归嵌套匹配花括号对

c++ - 在文件中搜索一个单词并在 C 中替换它?

java - 正则表达式在字符串中查找时间

android - 带有通话声音的状态栏通知

android - 如何在新层中使用phonegap打开外部链接?