我需要将一个字符串拆分为两个组件。作为一个例子,我有字符串:
s = 'Hello1_1000_10_1_data'
我希望将其拆分为两个字符串
str1 = 'Hello1_1000_10_1'
和
str2 = '_data'
重要的一点是,我不能确定第一个字符串的格式,唯一可以确定的是'后缀'要读入第二个字符串的内容总是读取' _data'。做这个的最好方式是什么?我查看了strtok和regexp上的文档,但它们似乎没有提供我想要的东西。
答案 0 :(得分:3)
如果你总是知道后缀的长度,你可以使用它:
s = 'Hello1_1000_10_1_data'
str1 = s(1:end-5)
或者其他:
s = 'Hello1_1000_10_1_data'
suffix = length('_data')
str1 = s(1:end-suffix)
答案 1 :(得分:1)
您可以使用:
s = 'Hello1_1000_10_1_data';
str = regexp(s, '(.*)(_data)', 'tokens'){1};
str{1} %// Hello1_1000_10_1
str{2} %// _data
如果_data
在文件名中多次出现,则仍然有效。
答案 2 :(得分:0)
您可以使用strfind():
s = 'Hello1_1000_10_1_data';
suffix = '_data';
i = strfind(s,suffix);
if any(i)
i = i(end);
prefix = s(1:i-1);
end
Best,Nras。
答案 3 :(得分:0)
您还可以使用strsplit()
,如下所示:
s = 'Hello1_1000_10_1_data';
suffix = '_data';
str = strsplit(s,suffix);
str1 = str{1}
此外,您可以将strsplit()
与多个分隔符结合使用。