如何从答案中读取特定数字(或单词)

时间:2016-07-06 21:49:55

标签: matlab netcdf

我有一个.nc文件,我在matlab中读取,并从时间变量中获取信息。

代码看起来像这样

>> ncreadatt(model_list{3},'T','units')
ans = 
'months since 1850-01-01'

我想要做的只是从答案中获取'1850'

1 个答案:

答案 0 :(得分:2)

Regular expression是一个非常强大的解析和操作字符串的工具 Matlab有regexp命令:

line = 'months since 1850-01-01';
res = regexp( line, '\s(\d+)-', 'tokens', 'once');
year = str2double(res{1})

结果是:

year = 
1850

使用的正则表达式'\s(\d+)-'表示:

\s - 查找单个空白字符(1850之前的空格) '(\d+)' - 查找一个或多个数字('\d+'),括号表示此处匹配的所有字符都将保存为"令牌"。
'-' - 在数字后面找一个'-'

您可以在ideone上播放。