2013-07-29 32 views
2

如果我要匹配像匹配BB顏色代碼Android應用/ JAVA

[black]something[/black] [orange]something[/orange]

下面的模式,並將其更改爲HTML代碼<span style="color:black">something</span>

但不能改變那些不配對的像[black]hello[/orange]

如何我寫的正則表達式來識別它們?

+0

要分析只有BB顏色代碼,或者還有其他的BB代碼? – Raptor

+0

可能重複的[Java BBCode庫](http://stackoverflow.com/questions/849396/java-bbcode-library) – Raptor

+0

@ShivanRaptor此時只有BB顏色代碼,我已經解析了一些代碼,有些代碼可能會解析它後來。 – benleung

回答

1

這裏是解決辦法,因爲在評論中提到:

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; 
} 
+0

看來,第二個bbMap.put應該是'\\ [orange \\](。 +?)\\ [/橙色\\]'對嗎? – benleung

+0

是的,一個錯字:)糟糕 – Raptor