如何使用正则表达式检测4位数

时间:2014-04-28 06:22:25

标签: matlab matlab-figure

如果给出源代码,我如何获得年份(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

1 个答案:

答案 0 :(得分:5)

只能抓四位数

age = regexp(CharData,'(\d{4})','match','once')

执行d{1,4}表示查找长度介于1和4之间的数字。含义1291234444都匹配,因为它们的长度在1到4之间

d{4}说,请告诉我完整长度为4的数字。含义199720011800都匹配。