使用regexprep进行前瞻和后视断言

时间:2013-05-13 22:49:24

标签: regex matlab

以下工作与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 示例所示的效果?

1 个答案:

答案 0 :(得分:2)

我认为您需要指定emptymatch选项。根据{{​​3}},它默认忽略零长度匹配。

>> regexprep('camelCaseText.ext', '\W|(?<=[^\WA-Z_])(?=[A-Z])', '$', 'emptymatch')