我想把这个字符串
"P07091 MMCNEFFEG
P06870 IVGGWECEQHS
SP0A8M0 VVPVADVLQGR
P01019 VIHNESTCEQ"
进入一个看起来像红宝石的数组。
["P07091 MMCNEFFEG", "P06870 IVGGWECEQHS", "SP0A8M0 VVPVADVLQGR", "P01019 VIHNESTCEQ"]
使用split
因为换行符而无法返回我想要的内容。
答案 0 :(得分:29)
这是处理空白行的一种方法:
string.split(/\n+/)
例如,
string = "P07091 MMCNEFFEG
P06870 IVGGWECEQHS
SP0A8M0 VVPVADVLQGR
P01019 VIHNESTCEQ"
string.split(/\n+/)
#=> ["P07091 MMCNEFFEG", "P06870 IVGGWECEQHS",
# "SP0A8M0 VVPVADVLQGR", "P01019 VIHNESTCEQ"]
答案 1 :(得分:5)
string = "P07091 MMCNEFFEG
P06870 IVGGWECEQHS
SP0A8M0 VVPVADVLQGR
P01019 VIHNESTCEQ"
require 'csv'
CSV.parse(string).flatten
# => ["P07091 MMCNEFFEG", "P06870 IVGGWECEQHS", "SP0A8M0 VVPVADVLQGR", "P01019 VIHNESTCEQ"]
使用String#each_line
的另一种方式: -
ar = []
string.each_line { |line| ar << line.strip unless line == "\n" }
ar # => ["P07091 MMCNEFFEG", "P06870 IVGGWECEQHS", "SP0A8M0 VVPVADVLQGR", "P01019 VIHNESTCEQ"]
答案 2 :(得分:4)
建立@Martin的回答:
lines = string.split("\n").reject(&:blank?)
这只会给你重要的行
答案 3 :(得分:1)
我喜欢将其用作处理换行符和返回值的通用方法:
lines = string.split(/\n+|\r+/).reject(&:empty?)
答案 4 :(得分:0)
以用于分割的角色的形式拆分take a parameter,所以你可以这样做:
lines = string.split("\n")