私は長さと内容の異なる文字列の配列を持っています。文章/文字列の最後の単語を抽出しますか?
今、私は各単語の最後の単語を抽出する簡単な方法を探しています。その単語の長さや文字列の長さはわかりません。
何か;
array.each{|string| puts string.fetch(" ", last)
私は長さと内容の異なる文字列の配列を持っています。文章/文字列の最後の単語を抽出しますか?
今、私は各単語の最後の単語を抽出する簡単な方法を探しています。その単語の長さや文字列の長さはわかりません。
何か;
array.each{|string| puts string.fetch(" ", last)
これは、それはあなたがcollect
delete
、句読点を除外する
"my random sentence..,.!?".split.last.delete('.!?,') #=> "sentence"
をうまく
"my random sentence".split.last # => "sentence"
を動作するはずです
["random sentence...", "lorem ipsum!!!"].collect { |s| s.split.last.delete('.!?,') } # => ["sentence", "ipsum"]
array_of_strings = ["test 1", "test 2", "test 3"]
array_of_strings.map{|str| str.split.last} #=> ["1","2","3"]
["one two", "three four five"].collect { |s| s.split.last }
=> ["two", "five"]
"a string of words!".match(/(.*\s)*(.+)\Z/)[2] #=> 'words!'
最後の空白のキャッチ。それには句読点も含まれます。
["a string of words", "Something to say?", "Try me!"].collect {|s| s.match(/(.*\s)*(.+)\Z/)[2] } #=> ["words", "say?", "me!"]
これは、私は考えることができる最も簡単な方法です:文字列の配列から、コレクトでそれを使用することを抽出するために
。
hostname> irb
irb(main):001:0> str = 'This is a string.'
=> "This is a string."
irb(main):002:0> words = str.split(/\s+/).last
=> "string."
irb(main):003:0>
完璧な、私は正しい軌道にあった。ありがとう! – BSG
スプリット機能にセパレータを付けることができると付け加えたいと思います。デフォルトでは、関数は空白を使用しますが、スラッシュやダッシュのような別のものに分割することもできます。 Ref:http://ruby-doc.org/core-2.2.0/String.html#method-i-split –