假设我们在MATLAB中有这个字符串:
mm = [' 44412 (25.01%)'];
我想只删除此字符串中的第一个空格以获得此输出:
'44412 (25.01%)'
我正在使用strrep(mm,'\^\s\s','')
但是没有用。有什么问题?
答案 0 :(得分:5)
strrep
的问题在于它不允许您使用regex
模式。过滤器的第一部分('\^'
)也会尝试明确地匹配^
,因此它不会对您的字符串进行处理。如果删除前导\
,则过滤器可以正常使用regexprep
,但仅限于具有2个前导空格的字符串。
尝试使用此更通用的过滤器,而不是regexprep
。
str = ' 44412 (25.01%)';
newstr = regexprep(str, '^\s+', '');
返回:
newstr =
44412 (25.01%)
我在这里所做的是在字符串的开头匹配1个或多个空格字符。这种语法还允许我们在没有任何前导空格的字符串上使用它,并且不对其进行任何修改。
编辑:这里有一些内置替代品!
您可以使用strtrim
,但它会删除前导和尾随空格:
newstr = strtrim(str);
您还可以使用strjust
左对齐字符串:
newstr = strjust(str, 'left');
如果你想要真正有创意,你可以flip你的数组并使用deblank
,它会删除尾随空格:
newstr = fliplr(deblank(fliplr(str)));