关闭

动态正则表达式的妙用

标签: regexprep datenum da
810人阅读 评论(0) 收藏 举报
分类:

今天一个朋友想要实现将一个文本文件中的时间向前推8个小时,以下是文本的格式,将其中的"20121105 10"替换为“20121105 02”

看起来似乎比较简单,但是问题是,如果遇到小时8小时的,就得向前推一天,如果遇到一个月的第一天,就得向前推一个月,并且

判断那个月有多少天,因此需要很多的分支语句来完成。

借助Matlab强大的时间操作函数datenum,将时间转换成天,然后减去1/3天,再用datestr函数格式化输出,但是这一切有了动态

的正则表达式,就如虎添翼了


以下是我的实现过程

fprintf(fopen('test2.txt','w'),'%s',...
    regexprep(fileread('A.TXT'),'(\d{8}\s\d{2})',...
    '${datestr(datenum($1,''yyyymmdd HH'')-1/3,''yyyymmdd HH'')}'));

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:40921次
    • 积分:530
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论