Ruby 正则表达式从虚线分隔的行中提取第一个单词

Ruby 正则表达式从虚线分隔的行中提取第一个单词,ruby,Ruby,我有一个数组,其中包含以下形式和形状的元素: {john mary peter car、house dog、mouse mice等}等等,所以项目之间用破折号分隔,每个项目之间用逗号分隔(当然,正如您在数组中所期望的那样)。我试图使用正则表达式映射数组,只获取每个元素的第一个单词(比如,john、house、mouse),但我得到的只是一个0的花名册 以下是代码(我首先获取文件并将其放入数组): linesdb=Array.new File.open('mylist.txt')。每个{| lin

我有一个数组,其中包含以下形式和形状的元素:

{john mary peter car、house dog、mouse mice等}等等,所以项目之间用破折号分隔,每个项目之间用逗号分隔(当然,正如您在数组中所期望的那样)。我试图使用正则表达式映射数组,只获取每个元素的第一个单词(比如,john、house、mouse),但我得到的只是一个0的花名册

以下是代码(我首先获取文件并将其放入数组):

linesdb=Array.new

File.open('mylist.txt')。每个{| line | linesdb都可以像这样使用
scan

 File.open('mylist.txt').each { |line| linesdb << line.scan(/^(.+?)-/)[0][0] }


您可以像这样使用
scan

 File.open('mylist.txt').each { |line| linesdb << line.scan(/^(.+?)-/)[0][0] }


这个解决方案完全基于MarkThomas的输入,所有的功劳都归他所有,但他把它作为评论,我不能用它来给他打分

linesdb = Array.new
File.open('medicamentos-lista.txt').each { |line| linesdb << line.split('-').first }
puts linesdb
linesdb=Array.new

File.open('medicamentos-lista.txt')。每个{| line | linesdb此解决方案完全基于Mark Thomas的输入,所有功劳都归他所有,但他将其作为评论,我不能用它来给他打分

linesdb = Array.new
File.open('medicamentos-lista.txt').each { |line| linesdb << line.split('-').first }
puts linesdb
linesdb=Array.new

文件.open('medicamentos-lista.txt')。每个{line | linesdb
john mary peter car,house dog,鼠标
都是一个
?不,直到只有逗号,在每个逗号之后,一个新行
放置line.split('-').首先
你需要一个更清晰的例子来说明你所得到的输入。这似乎是问题的根源problem@Mark托马斯。你的代码就是解决方案。太棒了。请把它贴出来,这样我就可以尊敬它了。
约翰·玛丽·彼得的车,家里的狗,老鼠
是一个
行吗?
?不,直到只有逗号,在每个逗号后面都有一个新行
放置行。拆分(“-”).首先
你需要一个更清晰的例子来说明你所得到的输入。这似乎是问题的根源problem@Mark托马斯。你的代码就是解决方案。太棒了。请把它贴出来,这样我就可以尊重它了/hyphenbash。虽然马克·托马斯的评论确实有最聪明的解决方案,但他并没有把它仅仅作为一个评论作为答案贴出来,我无法给出答案e指出了这一点。你承担了发布整件事情的工作,尽管我最终发布了基于马克·托马斯·布莱特代码的我自己的解决方案,但我不能给自己打分,也不能给托马斯打分,所以我给你打分。我把手指交给了那些否决我非常好的问题的Va标准的人。谢谢:)。我的解决方案基于purel我也同意@mark thomas solution更整洁。不过你可以对他的评论竖起大拇指,不知道这会如何影响他的评级。hyphenbash。虽然mark thomas的评论确实有最聪明的解决方案,但他并没有将其作为答案作为评论发布,我不能给它打分。你可以好的,发布整件事的工作,虽然我最终发布了基于马克·托马斯·布莱特代码的我自己的解决方案,但我不能给自己打分,不能给托马斯打分,所以我给你打分。我把手指交给Va标准是谁,谁否决了我的非常好的问题。谢谢:)。我的解决方案是基于纯正则表达式和我也同意@mark thomas solution更整洁。不过你可以对他的评论竖起大拇指,但不确定这会对他的评级产生什么影响。
puts linesdb
linesdb = Array.new
File.open('medicamentos-lista.txt').each { |line| linesdb << line.split('-').first }
puts linesdb