首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Ruby将字符插入空格

如何使用Ruby将字符插入空格
EN

Stack Overflow用户
提问于 2014-06-20 23:45:03
回答 2查看 58关注 0票数 0

请原谅,我是Ruby的新手,总体来说我对编程也是比较陌生的。我的问题可能并不难,但我一直在谷歌上搜索,直到我的手指出血,寻找解决方案,但我就是找不到。

我有一行文本,看起来像这样:

6 19 11 28 22 localhost G6UI ip0 cameraLink cameraLinkMissingScans 15116

说了这么多,做了这么多,我希望它看起来像这样:

6.19.2014,11.28.22,localhost,G6UI,ip0,cameraLink cameraLinkMissingScans 15116

我已经在Bash中做到了这一点(我本质上只是做了一个CSV文件,时间和日期按照我想要的方式格式化了),但是,为了解释冗长的原因,我想用Ruby做这件事。

我有一个开始,尽管这可能有点悲哀:

myLineOfText.sub!(/[^-a-zA-Z0-9]/,'\1.\2.')

这给了我这样的结论:

6..19 11 28 22 localhost G6UI ip0 cameraLink cameraLinkMissingScans 15116

任何帮助都会非常感谢,我只是需要一些东西让我开始。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-06-20 23:52:36

如果您可以确保格式始终保持不变,则可以执行以下操作:

str.sub!(/(\d+) (\d+) (\d+)/,'\1.\2.\3').gsub!(/ /,',')

示例:

代码语言:javascript
复制
str='6 19 11 28 22 localhost G6UI ip0 cameraLink cameraLinkMissingScans 15116'
str.sub!(/(\d+) (\d+) (\d+)/,'\1.\2.\3').gsub!(/ /,',')
puts str
=> "6.19.11,28,22,localhost,G6UI,ip0,cameraLink,cameraLinkMissingScans,15116"
票数 1
EN

Stack Overflow用户

发布于 2014-06-21 00:50:52

对于这样的问题,答案取决于数据格式中哪些是固定的,哪些是可变的。我假设:

与月份和年份相对应,至少有9个子字符串由spaces

  • substrings 0和1(基数0)分隔,它们将与文字"2014“组合,形成dd.mm.2014

  • substrings 2-4将与”‘“连接的形式
  • 。和后面跟',‘
  • 子串5-7要用',’连接,后面跟',‘
  • 其余的子串要用空格

连接

我不认为正则表达式是用于格式化的正确工具;而只是将字符串拆分在空格上,并通过使用一系列String#join来形成新的字符串,以显而易见的方式组合得到的子串:

代码语言:javascript
复制
s = "6 19 11 28 22 localhost G6UI ip0 cameraLink cameraLinkMissingScans 15116"
a = s.split(' ')
#=> ["6", "19", "11", "28", "22", "localhost", "G6UI", "ip0", "cameraLink",
#    "cameraLinkMissingScans", "15116"]

a[0]+'.'+a[1]+'.2014,'+a[2..4].join('.')+','+a[5..7].join(',')+','+
  a[8..-1].join(' ')
#=> "6.19.2014,11.28.22,localhost,G6UI,ip0,cameraLink cameraLinkMissingScans 15116"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24331068

复制
相关文章

相似问题

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