我想搜索多行文本文件,如果某行包含'dog'
,请将该行放入变量。
这是我的代码:
if File.foreach('textfile.txt').grep(/dog/)
我希望下一行代码将包含'dog'
的行放入变量wordline
。
我也可以搜索几个术语而不是一个术语,即:
if File.foreach('textfile.txt').grep(/cat|dog/)
我意识到它也可能以不同的方式完成,例如:
wordline=File.foreach('textile.txt').grep(/dog/)
但我不知道该内联版本的语法。
编辑:这是我的第一篇文章,我是一篇全新的Ruby newb ..我在帖子中提到过。但是有人编辑了所有内容,并且对我的帖子进行了投票。我在发布之前就已经阅读了常见问题解答,因此下次会欢迎对审查行为的解释。
答案 0 :(得分:0)
这里的一般想法是:
matching = File.readlines('text.txt').grep(/dog|cat/)
或更一般地说:
terms = %w[ dog cat ]
matching = File.readlines('text.txt').grep(Regexp.union(terms))
由于matching
是一个数组,您可以引用其中的元素,如matching[0]
或matching.first
,或者在必要时使用.each
进行迭代。将第一个匹配分配给变量:
first_match = matching.first