首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串中的解析日期

问字符串中的解析日期
EN

Stack Overflow用户
提问于 2014-02-12 06:54:54
回答 4查看 61关注 0票数 0

我有这样的字符串:

代码语言:javascript
复制
Available. Released 2013, November

我正在寻找一种方法来获取:年份,月份

到目前为止我有这样的判断力:

代码语言:javascript
复制
/Released \b\d{4}\b,\s?/.match('Released 2013, ')

但我却看不出我会怎么度过这个月?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-12 06:57:10

使用String#scan和捕获组:

代码语言:javascript
复制
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#[]

代码语言:javascript
复制
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"
票数 0
EN

Stack Overflow用户

发布于 2014-02-12 07:03:57

代码语言:javascript
复制
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"
票数 1
EN

Stack Overflow用户

发布于 2014-02-12 07:16:26

我会使用CSV::parse:

代码语言:javascript
复制
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"]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21720756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档