在 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"
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"