У меня есть программа, которую я делаю, которая собирается распаковывать электронные таблицы из большого tarball. Он будет делать это, будучи предоставленным числом до ARGV[0]
, после чего он будет запускаться через список текстовых файлов, которые соответствуют ранее указанному большому tarball, как только он найдет текстовый файл, он может найти правильный tarball для извлечения из ...ARGV всегда с ошибкой по регулярному выражению
Однако, у меня есть это установить, где он должен проверить номера, данные, хотя ARGV
, прежде чем он будет работать поиск с помощью этого: /^\d{4,7}/
Проблема заключается в том, что он держит недобросовестный к этому: USAGE: unarchive_ss <folio number>
Я немного смущен, почему он это сделает? Может ли кто-нибудь объяснить мне, что здесь происходит? ..
Я также попытался:
/\A\d{7}\z/
/\d{7}/
Источник:
#!/usr/local/bin/ruby
require 'rubygems/package'
require 'fileutils'
require 'zlib'
class ArchiveManager
attr_accessor :folio_num
def initialize(folio_num)
@folio_num = folio_num
end
def num_check
if folio_num =~ /^\d{4,7}/
search_for_spreadsheet
else
puts <<-EOF
USAGE: unarchive_ss <folio number>
EOF
end
end
def search_for_spreadsheet
location = FileUtils.chdir("path/to/file")
location
digits = `grep -lr #{folio_num}.ods *.txt`
file_name = digits.match(/\d+/).to_s
puts file_name
end
end
#/2715015
test = ArchiveManager.new(ARGV[0])
test.num_check
Пример:
[]$ ruby unarchive_ss 2715015
USAGE: unarchive_ss <folio number>
[]$
[]$ ruby unarchive_ss 271501
USAGE: unarchive_ss <folio number>
[]$
[]$ ruby unarchive_ss 1111111
USAGE: unarchive_ss <folio number>
[]$ ruby unarchive_ss 111
USAGE: unarchive_ss <folio number>
[]$
Вы пытались использовать Rubular? – 13aal
@ Ekult3k Да, вот где я получил три 'регулярных выражения'. – Bam
Я не могу воспроизвести это. Ваш код работает на моей машине. –