我有一个字符串"\nbed.bed_id,\nbed.bed_label,\nbed.room_id,\nbed.pool_bed, nbed.record_state\n"
,我需要用空格和逗号分隔它。
我试过split(/,?\s+/)
它的工作原理,但在开始时也留下了""
。使用split($;)
没有。我正在寻找的是说split(/,?$;/)
是否有一种方法来保留默认功能,并添加到它?
(p.s我知道我可以做这个split [1 ..- 1],有很多方法可以在ruby中做事情)。
更新:
我的问题是与
$;
我不知道真正的这是什么,并认为它有特殊的意义,因为作为一个变量irb>$; #=> nil
。现在可能是我错过了它,或者文档已经更新了,但是,ruby-doc.org说:“如果省略pattern,则使用$的值;如果$;为零(这是默认值), str被分割为空白,就好像''被指定了一样。“同时,
$;
是从Perl或awk中,被称为SUBSEP,并进一步解释为什么一开始是剥夺与$;
在这里Why is split(' ') trying to be (too) smart?
我喜欢使用椒盐脆饼操作符! “ – jtzero
”在这种情况下,您无法避免split()在开始或结束时返回一些空元素?“,默认split在开始时不会返回空元素,而/ \ s +/does split()=> [“bed.bed_id”,“bed.bed_label”,“bed.room_id”,“bed.pool_bed”,“nbed.record_state”] split(/ \ s + /)=> [“”, “bed.bed_id”,“bed.bed_label”,“bed.room_id”,“bed.pool_bed”,“nbed.record_state”] – jtzero