str = "ex1:ex2:ex3"
我想用以下字符拆分字符串:delimiter,只获取ex1和ex2,并忽略ex3。当我这样做时,
first, rest = str.split(":")
它给了我以下
ex1
:ex2
我尝试用空格替换:
str.gsub(":"," ")
但它仍然使用第二部分
的分隔符(:)给出相同的答案有没有什么好方法可以使用Ruby分割字符串,我只对字符串的前两部分感兴趣。
预期答案是:
ex1
ex2
谢谢!
答案 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"