【发布时间】:2020-07-27 17:06:08
【问题描述】:
我开始编程,我正在寻找一个程序来提取文本中两个单词之间包含的所有单词(以便将它们存储在变量中)
例如使用“开始”和“停止”这两个词: "开始 1 2 3 停止 5 6 开始 7 8 停止 9 10"
我想存储在变量中:1 2 3 7 8
我开始用 Ruby 做,你可以在下面的代码中看到,我目前的想法是将字符串“global”转换为数组,然后对 string1 和 string2 的位置进行编号;然后使用初始数组 # string1 + 1,... string2 -1 的值创建一个数组“string1”。 不幸的是,它只工作一次,因为 .index 函数只在第一次出现时工作......有没有更好的方法来做到这一点?
提前感谢您的帮助
text = "0 start 2 3 4 stop 6 7 start 9 10 stop 12"
start= text.split(' ')
a = start.index('start')
b = start.index('stop')
puts a
puts b
puts c = start[a+1,b-a-1].join(" ")
# returns
#1
#5
#2 3 4 ```
【问题讨论】:
-
你可以标记这个 (
split(/\s+/)) 然后分成开始/停止块。 -
你需要学习正则表达式。
标签: ruby string select methods extract