以下工作与perl
的{{1}}字符串替换运算符一样正常:
s///g
...但在MATLAB中几乎完全失败:
DB<18> $s = 'camelCaseText.ext'
DB<19> $s =~ s/\W|(?<=[^\WA-Z_])(?=[A-Z])/\$/g; print $s
camel$Case$Text$ext
如何使用MATLAB实现>> regexprep('camelCaseText.ext', '\W|(?<=[^\WA-Z_])(?=[A-Z])', '$')
ans =
camelCaseText$ext
示例所示的效果?
答案 0 :(得分:2)
我认为您需要指定emptymatch
选项。根据{{3}},它默认忽略零长度匹配。
>> regexprep('camelCaseText.ext', '\W|(?<=[^\WA-Z_])(?=[A-Z])', '$', 'emptymatch')