如何在Ruby中将字符串拆分为两个具有给定字符的部分?

时间:2011-03-09 23:08:54

标签: ruby string split

我们的应用程序是使用Twitter登录的人员挖掘名称。

Twitter在一个字符串中提供全名。

实施例

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

我想根据找到的第一个first(空格)将字符串拆分为两个变量(last" ")。

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

我熟悉String#split,但我不确定如何只拆分一次。最接受Ruby-Way™(优雅)答案。

4 个答案:

答案 0 :(得分:140)

String#split接受第二个参数,即限制。

str.split(' ', 2)

应该这样做。

答案 1 :(得分:12)

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

第二个参数限制您要将其拆分为的数字。

你也可以这样做:

"Ludwig Van Beethoven".partition(" ")

答案 2 :(得分:8)

.split()的第二个参数指定要执行的拆分数:

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

输出:

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

答案 3 :(得分:7)

替代:

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