你怎么能用正则表达式捕获这个?

时间:2011-02-01 16:45:18

标签: ruby-on-rails ruby

我试图在RegEx中捕捉多年的条件。基本上,如果他们只实现两位数的年份,我想让它成为一个四位数的年份。所以,如果他们提出:

1/2/08

我想成功:

1/2/2008

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

使用正则表达式的一种[非常讨厌]方式:

"1/2/08".sub! /\/(\d{2})$/, '/20\1'

将字符串解析为日期对象不是更好吗?然后你可以把它当作适当的日期! :)

答案 1 :(得分:1)

您可以拆分'/',如果最后一个组件的长度为2,则前加20,然后重新组合日期。

答案 2 :(得分:0)

您可以使用

拆分字符串
(.*/)(..)$

然后用

之类的东西替换
$120$2

将字符串重新组合在一起(使用http://www.regexplanet.com/simple/测试)。

你可能需要考虑一下20世纪日期你想要发生什么 - 这种方法会将21/01/98视为21/01/2098,这可能不是你想要的......它可能会更好正确解析字符串而不是盲目正则表达它!