Regex para convertir CamelCase a camel_case en java

Entiendo por qué no se da la salida deseada para convertir usando regex una cadena comoFooBar aFoo_Bar que en cambio daFoo_Bar_. Pude haber hecho algo con String.substringsubstring(0, string.length() - 2) o simplemente reemplazó el último carácter, pero creo que hay una mejor solución para este escenario.

Aquí está el código:

<code>String regex = "([A-Z][a-z]+)";
String replacement = "$1_";

"CamelCaseToSomethingElse".replaceAll(regex, replacement); 

/*
outputs: Camel_Case_To_Something_Else_
desired output: Camel_Case_To_Something_Else
*/
</code>

Pregunta: ¿Está buscando una forma más ordenada de obtener la salida deseada?

Respuestas a la pregunta(9)

Su respuesta a la pregunta