0

以下使用perl's///g字符串替换运算符按预期工作:

  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

如何perl使用 MATLAB 实现示例所示的效果?

4

1 回答 1

2

我认为您需要指定emptymatch选项。根据文档,默认情况下它忽略零长度匹配。

>> regexprep('camelCaseText.ext', '\W|(?<=[^\WA-Z_])(?=[A-Z])', '$', 'emptymatch')
于 2013-05-14T00:19:21.813 回答