1

所以,我有一个 spinEdit,它应该以 yyyyMM 格式显示年份和月份。我正在使用 RegEx 将值屏蔽为该格式,但是当我想从 201212 增加到 201301 时,它失败并显示 20121。我使用的 RegEx 看起来像这样

([0-9][0-9][0-9][0-9])(0[1-9])|(1[0-2])

问题是当月份为 12 时,增加值(将 1 加到月份)不会增加年字段。相反的情况也会发生,减少值(减 1 个月)不会减少年份,201301 - 1 到 2013 年。有没有办法只使用 RegEx 来解决这个问题?

4

2 回答 2

0

我认为这是可能的,但不是完全正则表达式解决方案,你需要有 linux 和 bash 可用(我个人在 bash ve 中找到日期函数)我必须在文件名中获取日期格式(字符串)并将其与日期进行比较在脚本中。下面是代码片段:

#!/bin/bash

#yyyymm you got after regex
inputdate = 201307 
#value you want to subtract
x = 8
#outputdate should return you 201211    
outputdate = $(date -d "$inputdate01 -$x month" +"%Y%m") 
于 2013-08-21T14:51:52.183 回答
0

我相信可能有一种方法,但是在实际情况下它的价值远非复杂。因此,通过保持简单,这是不可能的。

于 2013-09-04T06:22:54.360 回答