在Ruby中嘿你如何拆分多个空格或制表符?我试过这个如何拆分多个空白区域或制表符?
2.4.0 :003 > a = "b\tc\td"
=> "b\tc\td"
2.4.0 :005 > a.strip.split(/([[:space:]][[:space:]]+|\t)/)
=> ["b", "\t", "c", "\t", "d"]
但是标签本身变成了标记,这不是我想要的。上述应返回
["b", "c", "d"]
在Ruby中嘿你如何拆分多个空格或制表符?我试过这个如何拆分多个空白区域或制表符?
2.4.0 :003 > a = "b\tc\td"
=> "b\tc\td"
2.4.0 :005 > a.strip.split(/([[:space:]][[:space:]]+|\t)/)
=> ["b", "\t", "c", "\t", "d"]
但是标签本身变成了标记,这不是我想要的。上述应返回
["b", "c", "d"]
这是因为你使用的组是捕捉之一。见split
reference:
如果图案包含基团,相应的匹配结果将在阵列中,以及返回。
使用non-capturing group(仅用于分组模式),以避免增加匹配的字符串到结果数组:
a.strip.split(/(?:[[:space:]][[:space:]]+|\t)/)
^^
在这种情况下,你可以使用一个字符类,包含两个空格和跳你的正则表达式:
"b\tc\td".split /[ \t]+/
如果你想拆就任何空格,您还可以使用[\s]+
符号,它匹配所有空格字符。
使用'\ s +'模式进行分割功能,会返回你想要的。用法:'.split(/ \ s + /)' – MohaMad