在Ruby中使用字符串拆分?

时间:2015-03-25 22:42:39

标签: ruby-on-rails ruby regex split

    str = "ex1:ex2:ex3"

我想用以下字符拆分字符串:delimiter,只获取ex1和ex2,并忽略ex3。当我这样做时,

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

它给了我以下

    ex1
   :ex2

我尝试用空格替换:

    str.gsub(":"," ")

但它仍然使用第二部分

的分隔符(:)给出相同的答案

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

预期答案是:

    ex1
    ex2

谢谢!

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

也许你想要这个:

str = "ex1:ex2:ex3:ex4"

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

如果要返回数组:

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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