Я просмотрел похожие сообщения, но ни один из них не касается этого конкретного случая. Я хочу преобразовать некоторые старые соглашения об именах в верблюжий случай. Однако я хочу, чтобы преобразование было ограничено только следующим:
Строка (состоящая из букв в любом регистре или цифр), за которой следует символ подчеркивания, за которым следует алфавит, должна быть заменена такой же строкой, за которой следует тот же алфавит, но только этот алфавит в верхнем регистре. Больше ничего.
Некоторые примеры:
aXc9tu_muKxx -> aXc9tuMuKxx
zdmmpFmxf -> zdmmpFmxf //unchanged
_xfefx -> _xfefx //unchanged
Z_9fefx -> Z9fefx //EDITED after getting answers.
Так что если ? в регулярном выражении означало 1 или более вхождений, а [] использовался для указания диапазона символов, тогда я мог бы предположить, что исходное выражение будет: ([0-9a-zA-Z])?_([0-9a -зА-Я])?
Я готов использовать Javascript или любой инструмент Linux. Я еще раз повторяю, что преобразование будет включать только два символа _ и букву сразу после него, если это действительно буква. Знак _ будет удален, а буква будет заглавной. Если это не буква, а цифра, то будет удалено просто нижнее подчеркивание.
Цель состоит в том, чтобы перейти к верблюжьему регистру, но сохранить удобочитаемость старых соглашений об именах, где удобочитаемость может быть нарушена после преобразования. Например, THIS_IS_A_CONSTANT не изменяется на THISISACONSTANT.