ruby - 尝试在 ruby​​ 中搜索字符串以获取输入

标签 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)

有同样的问题。

这是怎么回事?提前致谢。

最佳答案

尝试:

search = gets.chomp

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

关于ruby - 尝试在 ruby​​ 中搜索字符串以获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7788369/

相关文章:

ruby - 快速检查数组是否相交

ruby-on-rails - 如何在 Rails 中以字符串格式显示 png 图像?

r - 使用R中的stringr和regex从文本中提取数字

ruby-on-rails - 在事件记录库中添加某些方法的首选方法是什么?

C 预处理器错误

ruby-on-rails - 索引无事件记录的Elasticsearch

ruby - 使用 RubyLDAP ldap 进行客户端身份验证

Java正则表达式replaceAll替换精确值

regex - 在 mongodb 的子文档数组上一起使用 $slice 和 $regex

c - 在哪里定义/声明内核中的结构也可以在外部使用?