Search code examples
rubyregexincludegets

Trying to search a string for a gets input in ruby


I am having issues searching for a string input by the user using gets. Here's the outline:

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}

The issue seems to be with if line.include?(search). When I replace (search) with the value I am searching for--such as ("example01")-- this script works fine. But when using the value input by the user--using gets, it never seems to find it. ("#{search}") doesn't work either.

I have also tried using regular expressions by swapping

if line.include?(search)

with

if line =~ Regexp.new(search)

with the same issue.

What is going on here? Thanks in advance.


Solution

  • Try :

    search = gets.chomp
    

    Your current implementation also stores the line-return you are adding from the input. The chomp will get rid of the \n or \r.