如何将MException转换为单行字符串并去除特殊换行符?
解决MATLAB中MException报告换行符无法移除的问题
我来帮你搞定这个头疼的换行符问题!你看到的↵其实只是MATLAB显示出来的换行可视化符号,实际存储在字符串里的是ASCII控制字符(比如回车\r(ASCII 13)或者换行\n(ASCII 10),Windows系统下通常是两者的组合\r\n),所以直接替换↵肯定没用~
具体解决方案
方法1:用正则表达式批量替换所有换行相关字符
正则表达式可以一次性匹配回车和换行符,不管是单独出现还是组合出现,都能彻底移除:
try error("rand Error") catch err a = string(getReport(err, 'extended','hyperlinks', 'off')); % 移除所有换行/回车控制字符 a_clean = regexprep(a, '[\r\n]', ''); end
方法2:直接替换对应的ASCII控制字符
如果你想更明确地指定要移除的字符,可以直接用char()生成对应的控制字符:
try error("rand Error") catch err a = string(getReport(err, 'extended','hyperlinks', 'off')); % 先替换Windows换行符组合,再单独处理剩余的单个控制字符 a_clean = strrep(a, [char(13) char(10)], ''); a_clean = strrep(a_clean, char(13), ''); a_clean = strrep(a_clean, char(10), ''); end
或者用erase一次性处理多个字符:
a_clean = erase(a, [char(10), char(13)]);
先确认实际的换行字符(可选)
如果你不确定字符串里到底是哪种控制字符,可以先把字符串转成ASCII码查看:
disp(double(a));
输出里的10对应\n,13对应\r,这样就能精准处理啦。
内容的提问来源于stack exchange,提问作者kkawabat
相关产品推荐
相关产品推荐

