我有一个名为list的单元格数组,其中包含一个文件列表。我想从该列表中仅提取特定文件并将它们存储在同一个数组中。这是我想要做的:
function [ varargout ] = myFiles( varargin )
list = {'test.m' '.' '..' 'test1.m' 'test2.txt'};
list = strmatch('*.m', list)
end
我的最终名单应如下所示,但是指数应该足够了。
list = test.m test1.m
我在Windows上使用MATLAB。在双引号中使用模式会引发错误。 尝试使用\\'作为(。)和/或(*)的转义序列。
答案 0 :(得分:1)
strmatch
用于查找以给定前缀开头的字符串。不支持正则表达式。对于你想要的regexp
,它以相反的顺序获取它的参数。或者,如果您反转所有字符串,则可以使用strmatch('m.',list)
然后再次反转结果以恢复文件名。
答案 1 :(得分:0)
根据here,您需要这样的内容:.*\.m$
。 问题与Windows中的常规搜索不同,*
意味着重复了0次或更多次,因此单独执行此操作将无效。
在这种情况下,我说匹配任何字符(.
表示任何单个字符)0次或更多次,然后在结尾处跟着.m
。 $
指定匹配必须在字符串末尾结束。