Jef*_*rod 20 regex pcre case-conversion
如何使用单个 Java/Perl正则表达式搜索和替换将具有下划线的名称转换为驼峰案例名称?
underscore_variable_name -> underscoreVariableName
UNDERSCORE_VARIABLE_NAME -> underscoreVariableName
_LEADING_UNDERSCORE -> leadingUnderscore
Run Code Online (Sandbox Code Playgroud)
我要求单个正则表达式的原因是我想使用Eclipse或Notepad ++搜索和替换来实现这一点.
Qta*_*tax 25
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;
Run Code Online (Sandbox Code Playgroud)
输出:
variableName, variableName, VarXShort, _variable_name__
variableName, variableName, varXShort, variableName
variableName, variableName, varXShort, variableName
Run Code Online (Sandbox Code Playgroud)