Pessoal,
Como faço para retirar o underline e a próxima letra tornar maiúscula usando regex?
Pessoal,
Como faço para retirar o underline e a próxima letra tornar maiúscula usando regex?
Se é que o texto se apresentará sempre dividindo as palavras por underline seria esse agrupamento:
(_\w{1})
Esse Pattern é só para encontrar. Ex.:
teste_coisa_bazuca_quadrado
Ele deve trazer os grupos (_c), (_b) e (q). Depois é só iterar, dar um upper e dar replaceAll("", “”).
Obs.: Não testei.
package br.example.regex;
import java.util.regex.*;
public class Test{
public static void main (String [] args){
String msg = "teste_teste";
String regex = "(\\w+)_(\\w)(\\w*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(msg);
if (matcher.find()){
msg = msg.replaceFirst("_\\w",matcher.group(2).toUpperCase());
}
System.out.println("msg = " + msg);
}
}
package br.example.regex; import java.util.regex.*; public class Test{ public static void main (String [] args){ String msg = "teste_teste"; String regex = "(\\w+)_(\\w)(\\w*)"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(msg); if (matcher.find()){ msg = msg.replaceFirst("_\\w",matcher.group(2).toUpperCase()); } System.out.println("msg = " + msg); } }
Vlw...vou testar :)
Como de costume, é bom perguntar. Você está fazendo isso para normalizar os nomes de variáveis e métodos de um programa para camelCase? Então tome cuidado, porque se a variável ou método estiver toda em maiúsculas você não pode fazer isso. Por exemplo:
if (ret == JOptionPane.OK_OPTION)...
Usando esse seu programa você poderia acabar tendo algo como:
if (ret == JOptionPane.OKOPTION)...
Isso porque ele substitui qualquer letra, não somente as minúsculas, se ela estiver precedida de “_”.
bastaria usar esta regex mais específica:
regex = “[a-z]_([a-z])”
e substituir esta regex “_[a-z]” pelo group(1).toUpperCase()