为什么我不能在控制字符上拆分字符串?

时间:2013-08-13 14:18:24

标签: ruby regex arrays split special-characters

当我找到字符^C^B时,我正在尝试拆分一条线。由于某种原因,它没有正确分裂。

我一直在Rubular并对此进行了测试,据说它应该拆分它。

我正在阅读并尝试拆分的行看起来像这样:

SOME_KEY^CSOME_VALUE^BSOME_KEY^CSOME_VALUE

代码是:

final_array = []
temp_array = []

array__with_all_of_the_data.each do |x|
  temp_array = x.split(/\^C/)
  temp_array.each do |y|
    final_array << y.split(/\^B/)
  end  
  @final_array << final_array.join(",")
end

1 个答案:

答案 0 :(得分:2)

使用正则表达式/\^[BC]/分割:

>> 'SOME_KEY^CSOME_VALUE^BSOME_KEY^CSOME_VALUE'.split(/\^[BC]/)
=> ["SOME_KEY", "SOME_VALUE", "SOME_KEY", "SOME_VALUE"]

如果您想将\B / \C替换为,,请使用gsub而不是split + join

>> 'SOME_KEY^CSOME_VALUE^BSOME_KEY^CSOME_VALUE'.gsub(/\^[BC]/, ',')
=> "SOME_KEY,SOME_VALUE,SOME_KEY,SOME_VALUE"