RegEx para dividir camelCase ou TitleCase (avançado)
Achei umbrilliant RegEx para extrair a parte de uma expressão camelCase ou TitleCas
(?<!^)(?=[A-Z])
Funciona como esperado:
valor -> valorcamelValue -> camel / ValorTitleValue -> Título / ValorPor exemplo, com Java:
String s = "loremIpsum";
words = s.split("(?<!^)(?=[A-Z])");
//words equals words = new String[]{"lorem","Ipsum"}
Meu problema é que ele não funciona em alguns casos:
Caso 1: VALUE -> V / A / L / U / ECase 2: eclipseRCPExt -> eclipse / R / C / P / ExtNa minha opinião, o resultado deve ser:
Caso 1: VALUECase 2: eclipse / RCP / ExtEm outras palavras, dados n caracteres maiúsculos:
se os n caracteres forem seguidos por caracteres minúsculos, os grupos deverão ser: (n-1 caracteres) / (n-ésimo caractere + caracteres inferiores)se os n caracteres estiverem no final, o grupo deve ser: (n caracteresAlguma idéia de como melhorar esse regex?