2014-10-30 64 views
2

我看起来像这样的台词:解析一线得到数

tmp='bla bio = 773 node = 6 bib=21 data=118 pewp= 120' 

我需要得到第一个和最后一个号码 - 773120 我试图

sscanf(tmp,' %*s %*s %*s %f %*s %*s %*s %*s %*s %*s %f') 

,但没有任何运气。 数字6 21 118是随机的其余都是常量

+1

当使用你的命令时,解释器打印773和120.你的问题在哪里? – Steffen 2014-10-30 13:33:04

回答

1

我发现一个简单的方法

temp=sscanf(tmp,'bla bio = %f node = %f bib=%f data=%f pewp= %f') 
tmp(1)=temp(1) 
tmp(2)=temp(5) 
1

以下方法可能有所帮助:

%删除所有 '='
tmp(strfind(tmp,'=')) = [];

%设置键&指数
key = 'bio';
index = strfind(tmp,key);

%提取值
value = sscanf(str(index(1)+length(key):end), '%g',1);

%为了获得pewp的值,设置键= 'pewp',并重复上述步骤