我在使用 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)
有同样的问题。
这是怎么回事?提前致谢。
最佳答案
尝试:
search = gets.chomp
您当前的实现还存储您从输入添加的换行符。 chomp 将删除\n 或\r。
关于ruby - 尝试在 ruby 中搜索字符串以获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7788369/