Regex для преобразования CamelCase в camel_case в Java
Я понимаю, почему желаемый вывод не дается для преобразования с помощью регулярного выражения строки, какFooBar
вFoo_Bar
который вместо этого даетFoo_Bar_
, Я мог бы сделать что-то с String.substringsubstring(0, string.length() - 2)
или просто заменили последнего персонажа, но я думаю, что есть лучшее решение для такого сценария.
Вот код:
<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>
Вопрос: Ищете более аккуратный способ получить желаемый результат?