如何在MATLAB中的所有特殊字符之前添加\?

use*_*990 3 matlab

我想在MATLAB中的字符串中的所有特殊字符之前添加'\',有人可以帮我解决.这是一个例子:

tStr = 'Hi, I'm a Big (Not So Big) MATLAB addict; Since my school days!';
Run Code Online (Sandbox Code Playgroud)

我希望将此字符串更改为:

'Hi\, I\'m a Big \(Not so Big \) MATLAB addict\; Since my school days\!'
Run Code Online (Sandbox Code Playgroud)

tas*_*hka 9

Matlab中的转义字符是单引号('),而不是反斜杠(\),就像在C语言中一样.因此,你的字符串必须是这样的:

tStr = 'Hi\, I\''m a Big (Not so Big ) MATLAB addict\; Since my school days!'
Run Code Online (Sandbox Code Playgroud)


Mol*_*lly 5

我在Mathworks网页上定义了特殊字符列表来执行此操作:

special = '[]{}()=''.().....,;:%%{%}!@';

tStr = 'Hi, I''m a Big (Not So Big) MATLAB addict; Since my school days!';

outStr = '';
for l = tStr
    if (length(find(special == l)) > 0)
        outStr = [outStr, '\', l];
    else
        outStr = [outStr, l];
    end
end
Run Code Online (Sandbox Code Playgroud)

这将自动添加这些\.您需要在输入字符串中使用两个单引号('')代替撇号.如果使用函数input()或类似函数获得tStr,则此过程仍然有效.

编辑:

或使用正则表达式:

regexprep(tStr,'([[\]{}()=''.(),;:%%{%}!@])','\\$1')
Run Code Online (Sandbox Code Playgroud)