【问题标题】:Why can't I split a string on control characters?为什么我不能在控制字符上拆分字符串?
【发布时间】:2013-08-13 14:18:23
【问题描述】:

当我发现字符 ^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

【问题讨论】:

    标签: ruby regex arrays split special-characters


    【解决方案1】:

    使用正则表达式/\^[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"
    

    【讨论】:

    • 这大大简化了它!
    猜你喜欢
    • 2011-12-29
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多