我有一个字符串"\nbed.bed_id,\nbed.bed_label,\nbed.room_id,\nbed.pool_bed, nbed.record_state\n"
,我需要用空格和逗号分隔它。
我尝试了split(/,?\s+/)
,但也开始使用""
。
使用split($;)
没有。我正在寻找的是说split(/,?$;/)
有没有办法保留默认功能并只添加它?
(p.s我知道我可以做这个分裂[1 ..- 1],有很多方法可以用红宝石做事。)
更新:
我的问题是$;
我不确定它到底是什么,并认为它具有特殊意义,因为它是一个变量irb>$; #=> nil
。现在可能是我错过了它,或者文档已经更新但是,ruby-doc.org说“如果省略pattern,则使用$;的值。如果$;是nil(这是默认值), str在空格上分割,就像指定了`'。
同样,$;
来自Perl或awk,称为SUBSEP,并进一步解释为什么开头被$;
剥离了Why is split(' ') trying to be (too) smart?
答案 0 :(得分:3)
在这种情况下,你不能避免split()在开头或结尾返回一些空元素吗?
尝试拒绝数组中的空字符串:
string.split(/,?\s+/).reject &:empty?
答案 1 :(得分:-1)
使用split你可以做到
str =“\ nbed.bed_id,\ nbed.bed_label,\ nbed.room_id,\ nbed.pool_bed,nbed.record_state \ n”
st = str.split(/,?\s+/)
st.shift
st