【发布时间】:2015-11-12 13:20:18
【问题描述】:
假设我们在 MATLAB 中有这个字符串:
mm = [' 44412 (25.01%)'];
我只想删除这个字符串中的第一个空格来得到这个输出:
'44412 (25.01%)'
我正在使用strrep(mm,'\^\s\s',''),但没有用。有什么问题?
【问题讨论】:
标签: regex string matlab str-replace
假设我们在 MATLAB 中有这个字符串:
mm = [' 44412 (25.01%)'];
我只想删除这个字符串中的第一个空格来得到这个输出:
'44412 (25.01%)'
我正在使用strrep(mm,'\^\s\s',''),但没有用。有什么问题?
【问题讨论】:
标签: regex string matlab str-replace
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)));
【讨论】: