我试图在RegEx中捕捉多年的条件。基本上,如果他们只实现两位数的年份,我想让它成为一个四位数的年份。所以,如果他们提出:
1/2/08
我想成功:
1/2/2008
有什么想法吗?
答案 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,这可能不是你想要的......它可能会更好正确解析字符串而不是盲目正则表达它!