如何在 MATLAB 中替换标志之间的字符组

How to replace groups of characters between flags in MATLAB

假设我在 Matlab 中有一个像这样的 char 变量:

x = 'hello ### my $ name is Sean Daley.';

我想用字符“&”替换第一个“###”,用字符“&&”替换第一个“$”。

请注意,我希望交换的字符组具有不同的长度[例如,length('###') 为 3 而 length('&') 为 1]。

此外,如果我有一个更复杂的字符,例如“###”和“$”对重复多次,我想实现相同的交换例程。所以如下:

y = 'hello ### my $ name is ### Sean $ Daley ###.$.';

将转化为:

'hello & my && name is & Sean && Daley &.&&.'

我已经尝试通过 for 循环和 while 循环手动对此(对于任意字符)进行编码,但该代码绝对是可怕的,并且不能推广到任意字符组长度。

我可以使用任何简单的函数来完成这项工作吗?

函数 strrep 就是您要找的。

y = replace(y,["###" "$"],["&"  "&&"])