String regex= "\\[B\\](.*)\\[/B\\]";
String x = "Uma [B]frase qualquer, [B]cheia [U]de[/U] palavras[/B] para podermos[/B] tratar.";
while(x.matches(".*"+regex+".*")){
x = x.replaceAll(regex, "<b>$1</b>");
}
System.out.println("x:"+x);
a outra expressão regular que vc usou tem o grupo ([^\[]), com ela vc não que os itens que estão dentro da lista por isso troquei por (.) assim vc vai subistituir qualquer coisa
[quote=bueno]Guilherme,
acho que é isso que vc esta querendo
String regex= "\\[B\\](.*)\\[/B\\]";
String x = "Uma [B]frase qualquer, [B]cheia [U]de[/U] palavras[/B] para podermos[/B] tratar.";
while(x.matches(".*"+regex+".*")){
x = x.replaceAll(regex, "<b>$1</b>");
}
System.out.println("x:"+x);
a outra expressão regular que vc usou tem o grupo ([^\[]), com ela vc não que os itens que estão dentro da lista por isso troquei por (.) assim vc vai subistituir qualquer coisa[/quote]
Boa, é quase isso, fiz uma pequena alteração.
Se fizer do seu jeito, não vai funcionar com essa frase: