我有这样的字符串:
Available. Released 2013, November我正在寻找一种方法来获取:年份,月份
到目前为止我有这样的判断力:
/Released \b\d{4}\b,\s?/.match('Released 2013, ')但我却看不出我会怎么度过这个月?
发布于 2014-02-12 06:57:10
使用String#scan和捕获组:
text = <<EOS
Available. Released 2013, November
Available. Released 2012, October
EOS
text.scan(/Released\s+(\d{4},\s*[A-Z][a-z]+)/)
# => [["2013, November"], ["2012, October"]]
text.scan(/Released\s+(\d{4}),\s*([A-Z][a-z]+)/)
# => [["2013", "November"], ["2012", "October"]]更新
如果只希望第一次匹配,请使用String#[]
text[/Released\s+\d{4},\s*[A-Z][a-z]+/]
# => "Released 2013, November"
text[/Released\s+(\d{4},\s*[A-Z][a-z]+)/, 1]
# => "2013, November"发布于 2014-02-12 07:03:57
s = <<_
Available. Released 2013, November
Available. Released 2012, October
_
s.each_line.map{|s| s.split("Released").last.strip}
# => ["2013, November", "2012, October"]
"Available. Released 2013, November".split("Released ").last
# => "2013, November"发布于 2014-02-12 07:16:26
我会使用CSV::parse:
require 'csv'
text = <<EOS
Available. Released 2013, November
Available. Released 2012, October
EOS
ary = CSV.parse(text,:col_sep => " ").map do |a|
a.last(2).join(" ")
end
ary # => ["2013, November", "2012, October"]https://stackoverflow.com/questions/21720756
复制相似问题