我有一个.nc文件,我在matlab中读取,并从时间变量中获取信息。
代码看起来像这样
>> ncreadatt(model_list{3},'T','units')
ans =
'months since 1850-01-01'
我想要做的只是从答案中获取'1850'
。
答案 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上播放。