web-dev-qa-db-ja.com

Rubyで文字列を特定の文字で2つの部分に分割する方法は?

私たちのアプリケーションは、Twitterを使用してログインする人々の名前をマイニングします。

Twitterは、1つの文字列でフルネームを提供しています。

1. "Froederick Frankenstien"
2. "Ludwig Van Beethoven"
3. "Anne Frank"

見つかった最初の" "(スペース)に基づいて、文字列をtwovar(firstおよびlast)のみに分割したい。

Example    First Name    Last Name 
1          Froederick    Frankenstein
2          Ludwig        Van Beethoven
3          Anne          Frank

私はString#splitに精通していますが、一度だけ分割する方法がわかりません。最もRuby-Way™(エレガント)の回答が受け入れられます。

61
user633183

String#splitは、2番目の引数である制限を取ります。

str.split(' ', 2)

トリックを行う必要があります。

142
yan
"Ludwig Van Beethoven".split(' ', 2)

2番目のパラメーターは、分割する数を制限します。

次のこともできます。

"Ludwig Van Beethoven".partition(" ")
12
sawa

.split()の2番目の引数は、実行する分割の数を指定します。

'one two three four five'.split(' ', 2)

そして出力:

>> Ruby -e "print 'one two three four five'.split(' ', 2)"
>> ["one", "two three four five"]
8
Blender

代替案:

    first= s.match(" ").pre_match
    rest = s.match(" ").post_match
7
Anno2001