具有重叠搜索结果的MATLABs strep函数
MATLABs具有重叠搜索结果的MATLABs strep函数,matlab,Matlab,MATLABsstrrep做的事情与我预期的不同: strrep('ababab', 'bab', 'bbb') 我希望字符串被增量替换,因此首先是abbbab,然后是abbbb。但是,MATLAB返回abbbbb(注意末尾的第6个b) MATLAB在引擎盖下做什么?查找索引,然后在每个索引处插入新字符串?完全不同的东西 最重要的是,我如何归档预期结果 准确地说,上面的示例只是减少额外错误源的最小示例。在现实世界中,我想替换整数向量中的序列: strrep([1 0 1 0 1 0], [
strrep
做的事情与我预期的不同:
strrep('ababab', 'bab', 'bbb')
我希望字符串被增量替换,因此首先是abbbab
,然后是abbbb
。但是,MATLAB返回abbbbb
(注意末尾的第6个b
)
MATLAB在引擎盖下做什么?查找索引,然后在每个索引处插入新字符串?完全不同的东西
最重要的是,我如何归档预期结果
准确地说,上面的示例只是减少额外错误源的最小示例。在现实世界中,我想替换整数向量中的序列:
strrep([1 0 1 0 1 0], [0 1 0], [0 0 0])
得到
1 0 0 0 0 0
告诉你你需要知道的。从页面底部的提示部分:
在替换字符串之前,strrep会在origStr中查找oldSubstr的所有实例,如strfind函数。对于重叠模式,strrep执行多个替换。请参见示例部分中的最后一个示例
最后一个示例比较了
strep
和regexprep
的行为。我想我会在绳子上做你想做的事。要处理数字,您可以使用char(vector)
将其转换为字符串,运行regexprep
,然后使用double(string)
+1将其转换回数字,以便将我指向doc strep
-我总是忘了帮助中有更多内容…
。但是,对于我的字符串示例,regexprep
返回abbbab
,整数示例根本不起作用。因此,我只回答了第一个问题。