如何使用单个 Java / Perl正则表达式搜索和替换,将带下划线的名称转换为驼峰式案例名称,如下所示?

underscore_variable_name -> underscoreVariableName
UNDERSCORE_VARIABLE_NAME -> underscoreVariableName
_LEADING_UNDERSCORE -> leadingUnderscore

我要求使用单个正则表达式的原因是,我想使用Eclipse或Notepad++搜索和替换来执行此操作。

最佳答案

Some Perl examples:

my $str = 'variable_name, VARIABLE_NAME, _var_x_short,  __variable__name___';

### solution 1
$_ = $str;

$_ = lc;
s/_(\w)/\U$1/g;

say;

### solution 2: multi/leading underscore fix
$_ = $str;

$_ = lc;
s/(?<=[^\W_])_+([^\W_])|_+/\U$1/g;

say;

### solution 3: without prior lc
$_ = $str;

s/(?<=[^\W_])_+([^\W_])|([^\W_]+)|_+/\U$1\L$2/g;

say;

输出:
variableName, variableName, VarXShort,  _variable_name__
variableName, variableName, varXShort,  variableName
variableName, variableName, varXShort,  variableName

关于regex - 如何使用正则表达式从下划线转换为驼峰式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9669703/

10-12 23:33