如果给出源代码,我如何获得年份(4位数),我只能检测到第29天,但无法检测到年份(1997年)。我的正则表达式检查有问题。
age = regexp(CharData,'(\d{1,4})','match','once')
例如,
注册 1997年3月29日
期望的输出: 1997
错误输出: 29
for i = 1:2
data2=fopen(strcat('DATA\PRE-PROCESS_DATA\F22_TR\f22_TR_pdata_',int2str(i),''),'r')
CharData = fread(data2, '*char'); %read text file and store data in CharData
fclose(data2);
age = regexp(CharData,'(\d{4})','match','once')
end
档案:f22_TR_pdata_1 - >注册 1997年6月24日
档案:f22_TR_pdata_2 - >注册 1997年3月29日
年龄: 1997
答案 0 :(得分:5)
只能抓四位数
age = regexp(CharData,'(\d{4})','match','once')
执行d{1,4}
表示查找长度介于1和4之间的数字。含义1
,29
,123
,4444
都匹配,因为它们的长度在1到4之间
d{4}
说,请告诉我完整长度为4的数字。含义1997
,2001
,1800
都匹配。