Ruby 按空格和数字拆分字符串

Ruby 按空格和数字拆分字符串,ruby,split,Ruby,Split,如何按空格和以下特定数字拆分字符串?我的绳子看起来像 PID55688.00976 1 PID66854.76557 2 PID88774.23455 3 PID66843.99754 1 PID66800.00764 3 我想把字符串按空格和数字3分开 代码 str.split/\s3/不拆分任何内容。我会这样做: string = <<-STRING PID55688.00976 1 PID66854.76557 2 PID88774.23455 3 PID66843.9975

如何按空格和以下特定数字拆分字符串?我的绳子看起来像

PID55688.00976 1
PID66854.76557 2
PID88774.23455 3
PID66843.99754 1
PID66800.00764 3
我想把字符串按空格和数字3分开

代码
str.split/\s3/不拆分任何内容。

我会这样做:

string = <<-STRING
PID55688.00976 1
PID66854.76557 2
PID88774.23455 3
PID66843.99754 1
PID66800.00764 3
STRING

string.scan(/(\w+\.\w+ \w+)\n/).flatten
#=> [["PID55688.00976 1"], ["PID66854.76557 2"], ["PID88774.23455 3"], ["PID66843.99754 1"], ["PID66800.00764 3"]]

我会这样做:

string = <<-STRING
PID55688.00976 1
PID66854.76557 2
PID88774.23455 3
PID66843.99754 1
PID66800.00764 3
STRING

string.scan(/(\w+\.\w+ \w+)\n/).flatten
#=> [["PID55688.00976 1"], ["PID66854.76557 2"], ["PID88774.23455 3"], ["PID66843.99754 1"], ["PID66800.00764 3"]]

这将产生OP在@spickermann的答案评论中描述的预期输出:


string=这将生成OP在@spickermann答案的注释中描述的预期输出:

字符串=假设

[["PID55688.00976 1", "PID66854.76557 2", "PID88774.23455 3"],
 ["PID66843.99754 1", "PID66800.00764 3"]] 
是所需的返回值,可以写入:

string.split(/\r?\n/).slice_after { |s| s.end_with?(' 3') }.to_a
请参见并使用?

假设

[["PID55688.00976 1", "PID66854.76557 2", "PID88774.23455 3"],
 ["PID66843.99754 1", "PID66800.00764 3"]] 
是所需的返回值,可以写入:

string.split(/\r?\n/).slice_after { |s| s.end_with?(' 3') }.to_a

请参阅并使用?

将结果放在哪里?如果您提到您的代码没有拆分任何内容,我认为它是有效的。它会分割字符串,可能不会产生您想要的输出。可能您没有正确地将字符串分配给str变量?当你在一个问题中给出一个例子时,请把你想要的结果显示为Ruby对象。你能告诉我你想要的结果是什么吗?我认为它是有效的。你提到你的代码没有分割任何东西。它会分割字符串,可能不会产生您想要的输出。可能您没有正确地将字符串分配给str变量?查看HEREDOCS每当你在一个问题中给出一个例子时,请以Ruby对象的形式显示所需的结果。但是我想得到这样的东西[[PID55688.009761 PID66854.76557 2 PID88774.23455 3],[PID66843.99754 1 PID66800.00764 3]]mila,这不是一个有效的Ruby对象。我希望你想要[[PID55688.00976 1,PID66854.76557 2,PID88774.23455 3],[PID66843.99754 1,PID66800.00764 3]]或[[PID55688.00976 1 PID66854.76557 2 PID88774.23455 3],[PID66843.99754 1 PID66800.00764 3]]但我想得到这样的东西[[PID55688.00976 1 PID66854.76554.76557 2 PID88774.23453],[PID66843.99754.99754],这不是有效的Ruby对象。我希望您想要[[PID55688.00976 1,PID66854.76557 2,PID88774.23455 3],[PID66843.99754 1,PID66800.00764 3]]或[[PID55688.00976 1 PID66854.76557 2 PID88774.23455 3]…或字符串。拆分/?…或字符串。拆分/?