我在ruby代码中有要求。我使用ruby 1.9.2和rails 3.0。 我有一个像“SR2G1M1D2”这样的字符串。现在我想分割它并提取像[S,R2,G1,M1,D2]这样的值。就像每当下一个值是字符时它应该split.Is有任何ruby函数或代码可用。使用ruby将字符串解析为字符
Thanx
我在ruby代码中有要求。我使用ruby 1.9.2和rails 3.0。 我有一个像“SR2G1M1D2”这样的字符串。现在我想分割它并提取像[S,R2,G1,M1,D2]这样的值。就像每当下一个值是字符时它应该split.Is有任何ruby函数或代码可用。使用ruby将字符串解析为字符
Thanx
"SR2G1M1D2".scan(/\D\d*/)
=> ["S", "R2", "G1", "M1", "D2"]
希望这有助于。
很棒的回答。但我认为他需要''SR2G1M1D2'.scan(/ [A-Za-z] [^ A-Za-z] * /)',因为他说'每当下一个值是字符时它应该分裂'。 – rubyprince 2011-06-06 08:41:37
@ rubyprince..thanx .. it works gr8 – Bijendra 2011-06-06 13:18:21
@nathanvda ... yup ..it working ..thanks – Bijendra 2011-06-06 13:18:56
向前看符号只需使用#split
与一个RegExp:
ruby-1.9.2-p180 :002 > "SR2G1M1D2".split(/(?=[a-zA-Z])/)
=> ["S", "R2", "G1", "M1", "D2"]
ruby-1.9.2-p180 :005 >
正如nathanvda所建议的,有一个更好的泛化。也就是说,每个值都是大写字母,可能后跟一个数字。虽然更多的例子可能会说明这是否正确。 – sawa 2011-06-06 08:24:00
thanx 2全部回复.. – Bijendra 2011-06-06 13:15:03