我有一个非标准格式的文件,我想读取它的特定部分,包括实数或整数。
str1='N.ELBETI.150.L10';
str2='KARDIA_3.150.L20';
str3='axeloos1.15.75.L20';
str4='florina2.6.3.L2.1';
我只想将数字存储在每个字符串的中心部分和末尾,即:
150和10来自str1,150和20来自str2,15.75和20来自str3,6.3和2.1来自str4 我尝试了几种方法,但我做不到。你能救我吗?
答案 0 :(得分:2)
已发布的好答案的替代方案。将以下函数应用于每个字符串。
function [num1, num2] = extract_from_string(s)
num1 = str2num(s(find(s == '.',1,'first')+1:find(s == 'L',1,'first')-2));
num2 = str2num(s(find(s == 'L',1,'first')+1:end));
end
答案 1 :(得分:1)
像这样使用regexp
:
获取第一个数字:
str1(regexp(str1,'\.\d')+1:regexp(str1,'L\d')-2)
获取最后一个号码:
str1(regexp(str1,'L\d')+1:end)
这些命令也适用于其他字符串