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\!'
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\!'
Matlab のエスケープ文字は、C 言語のようなバックスラッシュ (\) ではなく、一重引用符 (') です。したがって、文字列は次のようにする必要があります。
tStr = 'Hi\, I\''m a Big (Not so Big ) MATLAB addict\; Since my school days!'
これを行うために、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')