我在使用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)
有同样的问题。
这里发生了什么?提前谢谢。
答案 0 :(得分:4)
尝试:
search = gets.chomp
您当前的实现还会存储您从输入中添加的行返回。 chomp将摆脱\ n或\ r。