在 Ruby 中使用字符串拆分?

Using string split in Ruby?

    str = "ex1:ex2:ex3"

我想用 : 分隔符拆分字符串,只得到 ex1 和 ex2,而忽略 ex3。当我这样做时,

    first, rest = str.split(":")

它给了我以下内容

    ex1
   :ex2

我尝试用 space

替换 :
    str.gsub(":"," ")

但它仍然给出与第二部分分隔符 (:) 相同的答案

有什么好的方法可以使用 Ruby 拆分字符串,我只对字符串的前两部分感兴趣。

预期答案是:

    ex1
    ex2

谢谢!!

str = "ex1:ex2:ex3"
first, rest = str.split(/\:/)
print "#{first} and #{rest}"    # output => "ex1 and ex2"

也许你想要这个:

str = "ex1:ex2:ex3:ex4"

f,s = str.split(':')
f #=> "ex1" 
s #=> "ex2" 

如果你想return一个数组:

str.split(':').first(2)
  #=> ["ex1", "ex2"]

还有另一种使用正则表达式的方法。首先,我们只得到 : 之间的前 2 组,然后删除字符串的其余部分。然后拆分:

str = "ex1:ex2:ex3".gsub(/^(\w+\:\w+).*$/, "")
first, rest = str.split(":")

通过 sub 和 gsub。删除最后一个冒号部分,然后用换行符替换冒号。

> str = "ex1:ex2:ex3"
> str.sub(/:[^:]*$/, "").gsub(/:/, "\n")
=> "ex1\nex2"