我有一个字符串"\nbed.bed_id,\nbed.bed_label,\nbed.room_id,\nbed.pool_bed, nbed.record_state\n"
,需要用空格和逗号分隔它。
我尝试了split(/,?\s+/)
这一方法,但在开始时也留下了一个""
。
使用split($;)
没有。我要找的是说split(/,?$;/)
是否有方法保留默认功能并添加到其中?
(P.S我知道我可以做这个拆分[1..-1],在Ruby中有很多方法可以做事情)。
更新:
我的问题是$;
我不确定它到底是什么,我认为它有特殊的意义,因为作为一个变量irb>$; #=> nil
现在可能是我错过了,或者文档已经更新了,但是ruby-doc.org说“如果模式被省略,那么$;的值就被使用了如果$;为nil(这是默认值),str将被拆分为空白,如同指定了`'。
同样,$;
来自perl或awk,称为subsep,这里有一个进一步的解释,解释为什么开头被$;
去掉。
最佳答案
在这种情况下,不能避免split()在开始或结束时返回一些空元素?
尝试拒绝数组中的空字符串:
string.split(/,?\s+/).reject &:empty?