从第二次出现的字符中拆分字符串

Mr.*_*ack 8 ruby string

如何从第二次出现的字符中拆分字符串

str = "20050451100_9253629709-2-2"

I need the output 
["20110504151100_9253629709-2", "2"]
Run Code Online (Sandbox Code Playgroud)

gna*_*nab 12

没有什么比单线:)

str.reverse.split('-', 2).collect(&:reverse).reverse
Run Code Online (Sandbox Code Playgroud)

它将反转字符串,用" - "分隔一次,从而返回2个元素(第一个' - '前面的东西以及它后面的所有内容),然后反转两个元素,然后是数组本身.

编辑

*before, after = str.split('-')
puts [before.join('-'), after]
Run Code Online (Sandbox Code Playgroud)


hal*_*ave 4

您可以使用正则表达式匹配:

str = "20050451100_9253629709-2-2"
m = str.match /(.+)-(\d+)/
[m[1], m[2]]  # => ["20050451100_9253629709-2", "2"]
Run Code Online (Sandbox Code Playgroud)

正则表达式匹配“任何内容”,后跟破折号,后跟数字。