ruby - 拆分、重新排列和连接字符串

标签 ruby regex

如果我有一个字符串,例如 string = "08/01/2012"

如何在一行中用 Ruby 返回“2012-08-01”?

例如取最后一个“/”之后的一组数字,将它们插入到开头,然后将“/”替换为“-”

最佳答案

因为您要处理日期,所以我会浏览 Date 库(对于某些功能,您必须 require 'date')因为它是最灵活稳定的方法:

Date.strptime(string, '%m/%d/%Y').strftime('%Y-%m-%d')
#=> "2012-08-01"

如您所见,strptime(“字符串解析时间”)和strftime(“字符串格式化时间”)都采用准确描述它们正在执行的操作的格式字符串。

如果你不想通过Date,你可以像这样使用gsub:

string.gsub(%r{(\d+)/(\d+)/(\d+)}, '\3-\1-\2')
#=> "2012-08-01"

关于ruby - 拆分、重新排列和连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11914092/

相关文章:

c++ - 你会用 <regex> 实现一个轻量级的 XML 解析器吗?

用于调整空格的 Java 正则表达式

python - 有没有一种简单的方法可以获取单词中重复字符的数量?

regex - 搜索和替换字符串,并在替换中放置一个计数器

正则表达式匹配 Django URL 调度程序中的负数?

ruby-on-rails - 从 OS X 上的 Ruby 连接到 SQL Server 的最佳方式是什么?

ruby-on-rails - 验证 Rails 数据库设计

ruby-on-rails - 在 Ruby on Rails Controller 中重构重复的救援异常处理程序

ruby - 我可以或应该通过 ruby​​ 中的 object_id 属性找到一个对象吗?

ruby-on-rails - 载波 uploader 的未定义方法过程