如何使用Ruby在文本文件中搜索完全匹配的字符串? [英] How to search for exact matching string in a text file using Ruby?

查看:323
本文介绍了如何使用Ruby在文本文件中搜索完全匹配的字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我生成了一个文本文件,该文件具有带有响应主体的HTTP请求响应标头. 我想在此文件中搜索以包含Access-Control-Allow-Origin: *作为标题的响应标题.

I generated a text file having HTTP Request Response headers with response body. I want to search inside this file looking for response headers containing Access-Control-Allow-Origin: * as a header.

该文件包含以->开头并以"结束的行的形式,如下所示:

The file contains this in the form of a line starting with -> and ending with " like this:

-> "Access-Control-Allow-Origin: *\r\n"

如何使用if条件搜索此文本文件并在请求响应标题上方打印自定义消息?

How can I search this text file and print a custom message above the request response headers using an if condition?

我需要一些复杂的正则表达式吗?

Do I need some complex regex?

使用我的代码,我无法获得正确的搜索:

With my code I can not get the correct search:

require 'net/http'
require 'uri'
require 'IPAddr'
require 'timeout'

puts "Origin IP:\n\n"
originip = gets()
puts "Start IP:\n\n"
startip = gets()
puts "End IP:\n\n"
endip = gets()
(IPAddr.new("#{startip}")..IPAddr.new("#{endip}")).each do |address|
  begin
   uri = URI("http://#{address.to_s}")
   http = Net::HTTP.new(uri.host, uri.port)
   http.set_debug_output($stdout)
   request = Net::HTTP::Get.new(uri.request_uri)
   request.initialize_http_header({"Origin" => "#{originip}"})
   response = http.request request
   $stdout.reopen('Access-Control-Allow-Origin.txt','a')
   f = File.Open('Access-Control-Allow-Origin.txt')
   line = f.read
   if line = /Access-Control-Allow-Origin: */ then
     puts "\n\nAccess-Control-Allow-Origin: * Header Found:\n\n"
   else
     puts "\n\nAccess-Control-Allow-Origin: * Header Not Found:\n\n"
   end
 rescue Timeout::Error => exc
   puts "ERROR: #{exc.message}"
 rescue Errno::ETIMEDOUT => exc
   puts "ERROR: #{exc.message}"
 rescue Exception => exc
   puts "ERROR: #{exc.message}"
 end
end

推荐答案

您的if语句使用了错误的运算符.

Your if statement is using the wrong operator.

if  line =~ /Access-Control-Allow-Origin: */

这篇关于如何使用Ruby在文本文件中搜索完全匹配的字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆