问题描述
通常,我使用 strtrim()
来删除前导空格。因此," Fruit"
变为 "Fruit"
。
但是,如果前导空格是不间断的,即 char(160)
,则 strtrim 及其表亲 - deblank
和 strtok
- 无法删除此前导空格。>
我还尝试使用 for 循环将 " Fruit"
替换为 "Fruit"
,但 for 循环似乎无法识别 " Fruit"
,这表明我没有正确识别它。
这是我的 for 循环
for i=1:height(T)
if T.Foods(i) == " Fruit"
T.Foods(i) = "Fruit"
end
end
有什么方法可以删除这个前导的、不间断的空格,或者至少用一个没有空格的变量替换它?
解决方法
您可以使用 regexprep
匹配正则表达式 \s
(任何空白字符)并替换为 ''
>> str = [char(160),'fru',char(160),'it',char(160)]
str =
' fru it '
>> regexprep( str,'\s','' )
ans =
'fruit'
如评论中所述,仅针对您将使用的前导空格
regexprep( str,'^\s+','' )