15

私はこれの解決策を見つけるのに少し苦労しています。以下の文字列のように、文字列から最初の単語を削除するにはどうすればよいですか。

     "i am going to school"

     "he is going to school"

     "she is going to school" 

     "they are going to school"

したがって、文字列は任意の文字列にすることができ、最初の単語の正確な長さはわかりませんが、最初の単語を削除したいだけです。

結果は次のようになります

      "am going to school"

     "is going to school"

     "is going to school" 

     "are going to school"

何か助けはありますか?

ありがとう

4

4 に答える 4

28
"i am going to school".split(' ')[1..-1].join(' ')

=> "am going to school"

rubyの配列では双方向に移動できるため、-1が最後の要素です。

于 2013-03-25T11:18:56.593 に答える
10

'she is going to school'[/(?<=\s).*/] => "is going to school"

これは、Rubyのポジティブルックビハインドアンカーを使用します。

(?<= pat)-ポジティブルックビハインドアサーション:先行する文字がpatと一致することを保証しますが、一致するテキストにそれらの文字が含まれないようにします

したがって、パターンは空白文字とそれに続く任意の文字の文字列を探します。繰り返し(「*」など)は貪欲であるため、一致する最長の文字列を選択します。

于 2013-03-25T11:25:39.367 に答える
1

正規表現を使用する

str = "i am going to school"
puts str.gsub(/^(\w\s+)(.*)/, '\2')

=> "am going to school"
于 2013-03-25T11:22:02.810 に答える
1

文字列ごとにこれを行います。

string.sub(/\s*[\w']+\s+/, "")
于 2013-03-25T11:29:34.833 に答える