2014-02-20 24 views
0

我正在使用允许使用一些java代码的工具,但它具有if语句和其他几种包括日期转换方法的特殊语法。 由于这个限制,我必须使用RegEx来解决我的问题。Java正则表达式如何将数字粘贴到字符串的某些位置

日期格式应该是MMddyyyy(2014年1月1日的01012014)。问题是它缺少0,所以它看起来像“112014”而不是“01012014”。

有几种可能的日期类型需要注意。

112014 (Jan 1 2014) 
1012014 (Jan 1 2014) 

[编辑:这第一个案子很奇怪。有时他们将一天当作一位数字,其他时间将其作为两位数字。所以2014年1月1日或者是112014或1012014]

1102014 (Jan 10 2014) 
10012014 (Oct 1 2014) 
10102014 (Oct 10 2014) 

第3将需要更改为:

01012014 
01102014 
10012014 

if语句我可以做多个嵌套,这样我就可以写

if date length == 6 do something 
else if date length == 7 do something else 
else whatever 
+0

显示代码,你有什么尝试?为什么不使用DateTimeConverting实用程序?通过允许使用java代码的工具,你的意思是什么? – Vogel612

+7

'1112014'呢?那是11月1日还是1月11日?答:谁知道?你无法区分它们,所以你的数据不好。 – Bohemian

+0

@Bohemian你提出了一个好点。我更仔细地检查了数据,结果发生这种情况时,他们把当天的数值设为0,所以它会是1112014或11012014 – user3271826

回答

2

如果它只是一个6或7问题,我会使用2个正则表达式替换。
这asumes,如果7月份缺少0

伪代码:

如发现:^(\d)(\d{2}\d{4})$更换0\1\2
其他
如发现:^(\d)(\d\d{4})$更换0\1 + 0\2

相关问题