ruby - Ruby:从字符串中获取不同的子字符串并放入变量中
问题描述
我在文本文件中有以下字符串:
细绳:
38561 2914 55532, (aggregated by 55532 202.52.118.114)
使用 ruby,我如何读取上面的字符串并执行以下操作:
- 仅从行中提取子字符串
55532
并放入aggregator
变量中? - 提取
38561 2914 55532
并放入paths
变量?
我正在尝试使用string.scan
和的组合,string.split
但运气并不好。我想提取的所有子字符串在现实生活中都会发生变化,但它们始终是整数。我特别努力地aggregator
填充变量(任务 1) - 试图找到一种方法来获取它,以开始[aggregated by ]
和结束,[ ]
但到目前为止无法让它工作。任务 2(paths
变量)我可以使用正则表达式实现,但如果有意义的话,尝试在一次读取/扫描中同时执行任务 1 和任务 2。
有任何想法吗?
欣赏它,J
解决方案
如果字符串以三个整数开头,您可以像这样使用scan
和each_slice
:
irb> str = '38561 2914 55532, (aggregated by 55532 202.52.118.114)'
irb> paths, aggregator = str.scan(/\d+(?=[ ,])/).each_slice(3).to_a
irb> paths
=> ["38561", "2914", "55532"]
irb> aggregator
=> ["55532"]
或者:
arr = str.scan(/\d+(?=[ ,])/)
paths, aggregator = [arr[0..-2], [arr[-1]]]
推荐阅读
- python - “Python 从不隐式复制对象”是真的吗?
- python - 如何编译整个 Python 库(包括依赖项)以便可以在 C 中使用?
- angular - 打开模态时出现未定义的错误打开
- vim - 命令模式下的 vim 路径补全
- ruby - Logstash 使用 grok 和 ruby 提取和自定义字段
- javafx - 如何调用绑定属性的方法
- ios - iTunes 商店操作失败。从 Xcode 9.3 在 TestFlight 上上传构建时出现 WatchKit 错误
- javascript - 如何在 html5 画布中围绕多个形状绘制一个框
- swift - 下载后如何修复 UIImageView Aspect Fit
- mongodb - Mongodb 将多个集合的查找聚合到一个嵌套输出