2

我在搜索用户使用的字符串输入时遇到问题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")——这个脚本工作正常。但是当使用用户输入的值时——using gets,它似乎永远找不到它。("#{search}")也不行。

我也尝试通过交换使用正则表达式

if line.include?(search)

if line =~ Regexp.new(search)

有同样的问题。

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

4

1 回答 1

4

尝试 :

search = gets.chomp

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

于 2011-10-17T00:41:20.880 回答