MATLAB:删除字符数组中最后一个空格后的所有内容
如何删除字符数组中最后一个空格后的所有字符 输入:MATLAB:删除字符数组中最后一个空格后的所有内容,matlab,char,Matlab,Char,如何删除字符数组中最后一个空格后的所有字符 输入: ch = {'Test1 Index'; 'Test 2 Index'; 'Test 3 4 Curncy'} 预期产出: ch = {'Test1'; 'Test 2'; 'Test 3 4'} 从您的示例中,您似乎希望删除最后一个空格后的所有字符,并删除最后一个空格 您可以按如下方式使用: result = regexprep(ch, '\s\S*$', ''); 正则表达式'\s\s*$'匹配一个空格(\s),后跟零个或多个非空格(
ch = {'Test1 Index'; 'Test 2 Index'; 'Test 3 4 Curncy'}
预期产出:
ch = {'Test1'; 'Test 2'; 'Test 3 4'}
从您的示例中,您似乎希望删除最后一个空格后的所有字符,并删除最后一个空格 您可以按如下方式使用:
result = regexprep(ch, '\s\S*$', '');
正则表达式
'\s\s*$'
匹配一个空格(\s
),后跟零个或多个非空格(\s*
),直到字符串($
)的结尾。匹配的子字符串将替换为空字符串('
)。从您的示例中,您似乎希望删除最后一个空格后的所有字符,并删除最后一个空格
您可以按如下方式使用:
result = regexprep(ch, '\s\S*$', '');
正则表达式
'\s\s*$'
匹配一个空格(\s
),后跟零个或多个非空格(\s*
),直到字符串($
)的结尾。匹配的子字符串被空字符串('
)替换。请详细说明为什么正则表达式只匹配最后一个空格,而不匹配任何(实际上是第一个)空格?@NickyMattsson,因为它匹配一个空格,后跟零个或多个非空格,直到字符串结束。如果有多个空格,则第一个空格后面不会紧跟非空格。请详细说明为什么正则表达式只匹配最后一个空格,而不匹配任何(实际上是第一个)空格?@NickyMattsson,因为它匹配一个空格,后跟零个或多个非空格,直到字符串结束。如果有多个空格,则第一个空格后面不会紧跟非空格