次のようなパターンに一致させたい場合
[black]something[/black]
[orange]something[/orange]
それらをHTMLコードに変更します<span style="color:black">something</span>
ただし、ペアリングされていないものは変更しないでください[black]hello[/orange]
それらを認識する正規表現をどのように書くことができますか?
ケフィアBBを使用。テキスト翻訳用の構成可能なオープンソース ライブラリです。
コメントで述べたように、これが解決策です:
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;
}