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

问题描述:

我想在MATLAB中的字符串中的所有特殊字符前添加'\',任何人都可以帮助我。这里是例子:如何在MATLAB中的所有特殊字符前添加?

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

我想这个字符串改成:

'Hi\, I\'m a Big \(Not so Big \) MATLAB addict\; Since my school days\!' 
+0

定义 “特殊字符”。你似乎将','当作一个对象,而不是'!' – Phonon 2013-03-18 20:53:56

MATLAB中的转义字符是单引号('),而不是反斜线(\),如C语言。因此,你的字符串必须是这样的:

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

我明白了。我知道了。我的问题解决了。非常感谢。 – user2183990 2013-03-18 21:38:23

+0

你应该接受@tashuka答案! – fpe 2013-03-18 22:07:41

我承担了Mathworks公司的网页定义做这个特殊charecters名单:

special = '[]{}()=''.().....,;:%%{%}[email protected]'; 

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 

,它会自动添加这些\ S。您确实需要在输入字符串中使用两个单引号('')代替撇号。如果使用函数input()或类似的东西获得了tStr,这个过程仍然可以工作。

编辑:

或者使用正则表达式:

regexprep(tStr,'([[\]{}()=''.(),;:%%{%}[email protected]])','\\$1') 
+0

这对Molly很有帮助。感谢您的答复。我想知道这可以使用regexprep轻松完成。 – user2183990 2013-03-18 21:41:32

+0

我编辑我的答案使用regexprep。 – Molly 2013-03-19 03:32:27

+0

这应该是......,'\\ $ 1');',否则就是逃避美元符号。 – hchr 2015-06-09 10:17:41