试图在ruby中搜索字符串以获取输入

时间:2011-10-17 00:39:32

标签: ruby regex include gets

我在使用gets搜索用户输入的字符串时遇到问题。这是大纲:

puts "What are we searching for?"
search = gets
z=1
result = []
file = File.open('somefile.txt', 'r+')

file.each do |line| 
  if line.include?(search)
    result << z
  end
  puts line
  z+=1
end

puts "Found on line(s) #{result}

问题似乎与if line.include?(search)有关。当我用我正在搜索的值替换(search)时 - 例如("example01") - 这个脚本运行正常。但是当使用用户输入的值时 - 使用gets,它似乎永远找不到它。 ("#{search}")也不起作用。

我也尝试过交换

来使用正则表达式
if line.include?(search)

if line =~ Regexp.new(search)

有同样的问题。

这里发生了什么?提前谢谢。

1 个答案:

答案 0 :(得分:4)

尝试:

search = gets.chomp

您当前的实现还会存储您从输入中添加的行返回。 chomp将摆脱\ n或\ r。