【发布时间】:2020-05-13 09:11:39
【问题描述】:
我从我们的设备(数组)中得到了很多字符串。有两种不同的字符串:
- 011_c_srr_Rtzfi_at000_hh5_fs_v343_l067_i1_Test_Test
- 041_c_ddr_Rtzfi_ds000_hh5_fs_v343_l037_i1_Test_hall(需要的信息在字符串中间)
- 061_t_err_Rsas_au000_ti3_fs_v777_l011_ *
- 021_t_err_Rsas_au230_ti3_fs_v777_l031_(所需信息在字符串末尾)
结论:我需要字符串的以下部分 l067 / l037 / l011 ..... 例如 l067 表示 67%,I037 表示 37%。所以我需要这两个百分比的值。结果是 67 和 37。 我的代码:(仅部分)
for j=1:numRows;
Name=LaSP.Messung(j, 1).name
Size=size(Name)
Length = strlength(Name)%Evaluiert die Länge des gesamten Strings
pos1 = findstr(Name, '_')%Listet alle "_" im String auf
[zeile1,spalte1]=size(pos1)
spalte=pos1(1,spalte1)%ich hol mir string position vom letzten "_"
if spalte==Length%Abfrage ob das letzte zeichen ist ein "_"
%%Abfrage ob der Wert schon einmal vorkam
%%die letzten 4 auslesen
else
%%in mitten des strings
end
%pos = strfind(Name, '_')
%k = strfind(Name,'_','ForceCellOutput',true)
%idx = find(strcmp(Name, '_'))
%pat='_';
%ind=regexp(Name,pat);
% word_to_find=strfind(strarray,'stringtofind');
% starray.index(word_to_find);
end
我的问题是我无法拆分字符串...我无法提取最后 4 个字符... 谢谢
【问题讨论】:
-
你可能想试试正则表达式
-
感谢您发布所需的输入和输出以及代码,但代码有什么问题?你被困住了吗? (旁注:虽然不允许在 SO 上使用,但使用德语的代码内 cmets 会使非德语使用者更难理解)。我会在破折号上写一个
strplit()_,然后抓住第九个单元格。