为什么不能在控制字符上分割字符串? [英] Why can't I split a string on control characters?

查看:86
本文介绍了为什么不能在控制字符上分割字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我一起找到字符 ^ C ^ B 时,我试图拆分一行。出于某些原因,它无法正常拆分。

I am trying to split a line when I find the characters ^C or ^B together. For some reason it is not splitting properly.

我一直在 Rubular 并对其进行了测试,并认为应该将其拆分。

I have been on Rubular and tested this and supposedly it should split it.

我正在阅读并尝试拆分的行如下所示:

The lines that I am reading in and trying to split look something like this:

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


推荐答案

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

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

如果要替换 \B / \C 一起使用gsub代替 split + join

If you want replace \B / \C with ,, use gsub instead of split + join:

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

这篇关于为什么不能在控制字符上分割字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆