0

ARGV.first特定のテキストを検索できるように、ユーザー入力を文字列に変換するにはどうすればよいですか?

私は作成しようとしましたcheckifinstring = #{ARGV.first}.join("")

`checkifinstring =~ /s/

4

2 に答える 2

1

ARGVについて何か読んだことがあれば、それが文字列の配列であることがわかります。

これは配列であるため、ウォークしたり、そこから個々の要素を抽出したり、要素を結合して 1 つの長い文字列を作成したりできます。

いくつかのコードを書いてみて、いくつかの追加パラメーターを指定してコマンドラインから実行してください。次のようなプラグイン行:

puts ARGV.first
puts ARGV.last
puts ARGV.join(' ')

ARGV.each_with_index do |arg, i|
  puts "arg ##{ i } ==> #{ arg }"
end

最初の行はスクリプトに渡された最初のパラメーターを返し、2 番目は最後になり、3 番目の行は渡されたコマンドの適切な複製になります。残りの行は、スクリプトに渡された各引数をそのインデックスと共に返します。番号。

それを「test.rb」として保存し、コマンドラインから実行しました。

ruby ~/Desktop/test.rb one two three four

そして、この出力を得ました:

one
four
one two three four
arg #0 ==> one
arg #1 ==> two
arg #2 ==> three
arg #3 ==> four

このことを知ったら、あとは簡単です。

ARGV.first['on'] # => "on"
ARGV.first['an'] # => nil

上記が意味をなさない場合はString[]、部分文字列の一致の使用を掘り下げてください。

コマンドライン パラメーターを使用する場合は、パラメーターを渡すために独自のシステムを再発明しようとするのではなく、Ruby のOptionParserクラスに依存することを強くお勧めします。これははるかに洗練された強力なものであり、フラグ、オプションおよび必須のパラメーター、長い名前と短い名前、組み込みのヘルプを使用して、スクリプトに標準のコマンドライン インターフェイスを提供し、入力値を文字列から整数および配列に変換することができます。 . OptionParser のドキュメントはあまりよくありませんが、私たちがお手伝いします。

于 2013-09-11T04:10:10.573 に答える
0

ARGVには、実行可能ファイルの名前を含む最初の値で ruby​​ を実行するために使用されるコマンド ライン引数が含まれます。

スクリプトに渡された引数を要素ごとに 1 つずつ含む ARGV 配列を返します。

例えば:

    $ ruby argv.rb  file1 file2

   ARGV  #=> ["file1", "file2"]
   ARGV.first #=> "file1"

あなたの質問から、文字列の配列を取得した場合、その配列から入力文字列を簡単に検索できます

ARGV.select{|f| f == "file1"}

それがあなたを助けることを願っています

于 2013-09-11T04:09:07.910 に答える