3

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\!'
4

2 に答える 2

11

Matlab のエスケープ文字は、C 言語のようなバックスラッシュ (\) ではなく、一重引用符 (') です。したがって、文字列は次のようにする必要があります。

tStr = 'Hi\, I\''m a Big (Not so Big ) MATLAB addict\; Since my school days!'
于 2013-03-18T21:06:54.737 に答える
5

これを行うために、Mathworks の Web ページで定義されている特殊文字のリストを使用しました。

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

これらの \s が自動的に追加されます。入力文字列のアポストロフィの代わりに、2 つの単一引用符 ('') を使用する必要があります。tStr が関数 input() などで取得された場合、この手順は引き続き機能します。

編集:

または正規表現を使用します。

regexprep(tStr,'([[\]{}()=''.(),;:%%{%}!@])','\\$1')
于 2013-03-18T21:25:18.950 に答える