在字符结束前匹配任何字符串

时间:2015-05-05 18:46:01

标签: ruby regex

我的约会时间为“23-12-2010”或“2013-” 我想提取2013年的有效年份 - 即。 2013年和有效日期为23-12-1010,即23-12-2010。 所以我试图在最后' - '之前提取所有tring,如果它存在的话。

我试过以下。

"2013-"[/.+?(?=-)/]

但是对于“23-12-2010”的日期,它仅返回“23-12” 我在这里缺少什么。??

4 个答案:

答案 0 :(得分:2)

在您的情况下,似乎年份包含4位数字,因此您可以编写如下内容:

2.1.5 :037 > "23-12-2010"[/\d{4}/]
 => "2010"

正如您所看到的,此正则表达式将检测年份为4位数的模式。

答案 1 :(得分:1)

 p "23-12-2010".chomp('-') # => "23-12-2010"
 p '2013-'.chomp('-')      # => "2013"

答案 2 :(得分:0)

它不是很好的解决方案,但我认为它对您有用:

s="23-12-2010"
s.split('-').size==3 ? s.split('-').last : s.split('-').first
=> "2010"

s2="2010-"
s2.split('-').size==3 ? s2.split('-').last : s2.split('-').first
=> "2010"

答案 3 :(得分:0)

使用sub删除末尾的短划线:

wrapper.someFunction();