在Ruby中拆分字符串

在Ruby中拆分字符串,ruby,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" 我尝试过使用数组,但想尝试一些新功能。这里不需要拆分 sample_string = "00 85 00 04 79 E5 0B B5 82 AE C7 C9 96 37 93 AE" st

我要拆分一个字符串:

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

我尝试过使用数组,但想尝试一些新功能。

这里不需要拆分

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"

但不清楚要使用什么“模式”来剪切原始字符串。

这里不需要
拆分

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"

但是还不清楚您希望使用什么“模式”来剪切原始字符串。

这里有很多各种语言的示例,如python、perl、ruby和其他语言


“很棒”的地方在于,所有不同的语言都能解决相同的问题,因此很容易比较不同语言之间的解决方案。

有很多各种语言的例子,比如python、perl、ruby和其他语言


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

答案取决于您可能提供的其他信息:第一个字符串的长度是否已知?从概念上定义要在何处进行拆分的内容

在您的示例中,您可以执行以下操作:

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]

或者你可以像分割数组/列表一样进行切片。答案取决于你可能提供的其他信息:第一个字符串的长度是已知的吗?从概念上定义要在何处进行拆分的内容

在您的示例中,您可以执行以下操作:

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]

或者,您可以像分割数组/列表一样进行分割。显然,分割将基于字符串的解释内容,因为这似乎是数字,我建议首先将其转换为数组,并直接对真实数据进行操作,而不是对其字符串表示

但是,有一种方法可以基于内容在单词边界进行拆分,但不使用任何内容,方法是使用零宽度先行模式。你也可以加入一些单词边界和空格吃法:

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

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

但是,有一种方法可以基于内容在单词边界进行拆分,但不使用任何内容,方法是使用零宽度先行模式。你也可以加入一些单词边界和空格吃法:

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

怎么样?谢谢大家的帮助。。字符串数据是动态的,因此无法按字符串的内容进行处理..,感谢这些简单的技术。。因为绳子的长度是固定的,所以看起来flOOr给出的解决方案对我来说是最好的,谢谢Fredrik的链接,还有其他人的帮助。怎么样?谢谢大家的帮助。。字符串数据是动态的,因此无法按字符串的内容进行处理..,感谢这些简单的技术。。由于字符串的长度是固定的,所以flOOr给出的解决方案似乎对我来说是最好的,谢谢Fredrik的链接,也谢谢其他人的帮助。在一个重要的值上拆分,然后再将其添加进去,这真的不是一个好的编程实践。在一个重要的值上拆分,这真的不是一个好的编程实践,然后把它加回去。