2

次のような文があるとします。

The quick brown fox jumps over the lazy dog

「ジャンプ」を含め、前にすべてを切り取りたいので、次のように残します。

 over the lazy dog

現在、削除したいパーツのインデックスを取得し、そのパーツの長さを追加して、次のようにスライスします。

sentence = "The quick brown fox jumps over the lazy dog"
slice_index = sentence.index("jumps").to_i + sentence.size
sliced_sentence = sentence.slice(slice_index..-1)

これを達成するためのより良い方法はありますか?

ありがとう!

4

3 に答える 3

5

個人的には、正規表現ソリューションが好きですが、

sentence.split(" jumps ").last

複数の「ジャンプ」がある場合でも、機能します。

于 2011-07-25T21:20:38.843 に答える
3

正規表現を使用できます。

sentence =~ /jumps(.*)$/
sliced_sentence = $1
#=> " over the lazy dog"

jumpはあなたが探している単語(.*)$であり、文字列の終わりまでのすべてであり、角かっこは最初のキャプチャグループを表します(したがって、$ 1として参照されます)

于 2011-07-25T21:08:06.787 に答える
1

おそらく最善の解決策ではありませんが、私はそうするでしょう:

sentence = "The quick brown fox jumps over the lazy dog"
sentence.split(" jumps ")[1]

splitは、区切り文字に基づいてstrをサブストリングに分割し、これらのサブストリングの配列を返します。配列インデックス1は、常に区切り文字の後のセクションになります。複数の「ジャンプ」がある場合、これは壊れます

于 2011-07-25T21:14:23.320 に答える