在分号前抓住所有数字

时间:2016-03-18 16:05:06

标签: ruby

我正在创建一个程序,该程序从文件中读取行并尝试连接到随机生成的"代理。"如果连接错误,我尝试做的就是读取行;

  • 将它们保存到名为proxies_to_check.txt
  • 的文件中
  • 或者将它们保存到名为bad_proxies.txt
  • 的文件中

它起作用的方式,它实际上运作得很好,我对自己印象深刻。但是,当它保存到文件时,它会使用端口保存ip,如下所示:

143.54.67.231:6543
143.23.567.23:3452
9.234.21.124:5432

我想要做的就是将ip保存到文件中,如下所示:

143.54.67.231
143.23.567.23
9.234.21.124

我尝试了一些事情,比如使用正则表达式,并删除线条(我抬头看起来条纹,它没有做我认为它做的事情),我怎样才能抓住所有的分号前的数字和句号?

来源:

def check_possibles
  puts "Testing possible proxies, this will take awhile..".green.bold
  IO.read("possible_proxies.txt").each_line do |proxy|
    begin
      Timeout::timeout(6) do
        begin
          open("http://#{proxy.chomp}")
          end
          File.open("true_proxies.txt", "a+") {|s| s.puts(proxy)}
        end
        rescue Errno::ENETUNREACH, Errno::EADDRNOTAVAIL
          File.open("bad_proxies.txt", "a+"){|s| s.puts("Bad IP => #{proxy}")}
    rescue Timeout::Error, Errno::ECONNREFUSED
      File.open("proxies_to_check.txt", "a+") {|s| s.puts(proxy)}
      next
    end
  end
end

1 个答案:

答案 0 :(得分:0)

 "143.54.67.231:6543".split(":")[0..-2].join

OR

"143.54.67.231:6543".split(":").first

或者如果您需要RGX,这可能对您有所帮助

Is it a valid Regular expression for IP address