在Ruby中拆分字符串

时间:2011-05-17 11:55:02

标签: ruby

我想分割一个字符串:

"00 85 00 04 79 E5 0B B5 82 AE C7 C9 96 37 93 AE"

分为两个小字符串:

string1 => "00 85 00 04"
string2 => "79 E5 0B B5 82 AE C7 C9 96 37 93 AE"

我尝试使用数组,但想尝试新的东西。

4 个答案:

答案 0 :(得分:4)

此处您不需要split

sample_string = "00 85 00 04 79 E5 0B B5 82 AE C7 C9 96 37 93 AE"
string1, string2 = sample_string[0, 11], sample_string[12..-1]
string1
#=> "00 85 00 04"
string2
#=> "79 E5 0B B5 82 AE C7 C9 96 37 93 AE"

但目前尚不清楚你想用什么“模式”来剪切原始字符串。

答案 1 :(得分:1)

在各种语言中有很多例子的好地方,例如python,perl,ruby和其他pleac ruby string section

“伟大的”是所有不同的语言解决相同的问题,使得比较语言之间的解决方案变得容易。

答案 2 :(得分:0)

答案取决于您可能提供的其他信息:是已知长度的第一个字符串?概念上定义了您希望拆分发生的位置。

在您的示例中,您可能会这样做:

s = "00 85 00 04 79 E5 0B B5 82 AE C7 C9 96 37 93 AE"

l = s.split("04")

str0 = l[0] + "04"
str1 = l[1]

或者您可以像对阵阵列/列表一样进行切片

答案 3 :(得分:0)

显然你的分裂将基于字符串的解释内容,并且由于这似乎是数字,我建议首先将其转换为数组并直接在真实数据上操作,而不是在它的字符串表示上。

但是,有一种方法可以根据内容在单词边界处进行分割,但不使用任何内容,使用零宽度超前模式。你也可以抛出一些单词边界和空间吃的模式:

s.split(/\b *(?=79)\b/)