2013-03-18 175 views
2

我想在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

回答

4

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

5

我承擔了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

相關問題