当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby String.split用法及代码示例


本文简要介绍ruby语言中 String.split 的用法。

用法

split(pattern=nil, [limit]) → an_array
split(pattern=nil, [limit]) {|sub| block } → str

根据分隔符将str 划分为子字符串,返回这些子字符串的数组。

如果 pattern String ,则在拆分 str 时将其内容用作分隔符。如果 pattern 是单个空格,则 str 在空白处拆分,前导和尾随空白以及连续空白字符的运行将被忽略。

如果 pattern Regexp ,则 str 在模式匹配的地方被分割。每当模式与零长度字符串匹配时,str 就会被拆分为单个字符。如果pattern 包含组,则相应的匹配项也将在数组中返回。

如果 patternnil ,则使用 $; 的值。如果 $;nil(这是默认设置),则 str 在空格上拆分,就像指定了“ ”一样。

如果省略limit 参数,则禁止尾随空字段。如果limit 为正数,则最多返回该数量的拆分子字符串(也将返回捕获的组,但不计入限制)。如果 limit1 ,则整个字符串作为数组中的唯一条目返回。如果为负数,则返回的字段数没有限制,并且不抑制尾随的空字段。

当输入 str 为空时,将返回一个空的 Array ,因为该字符串被认为没有要拆分的字段。

" now's  the time ".split       #=> ["now's", "the", "time"]
" now's  the time ".split(' ')  #=> ["now's", "the", "time"]
" now's  the time".split(/ /)   #=> ["", "now's", "", "the", "time"]
"1, 2.34,56, 7".split(%r{,\s*}) #=> ["1", "2.34", "56", "7"]
"hello".split(//)               #=> ["h", "e", "l", "l", "o"]
"hello".split(//, 3)            #=> ["h", "e", "llo"]
"hi mom".split(%r{\s*})         #=> ["h", "i", "m", "o", "m"]

"mellow yellow".split("ello")   #=> ["m", "w y", "w"]
"1,2,,3,4,,".split(',')         #=> ["1", "2", "", "3", "4"]
"1,2,,3,4,,".split(',', 4)      #=> ["1", "2", "", "3,4,,"]
"1,2,,3,4,,".split(',', -4)     #=> ["1", "2", "", "3", "4", "", ""]

"1:2:3".split(/(:)()()/, 2)     #=> ["1", ":", "", "", "2:3"]

"".split(',', -1)               #=> []

如果给出了一个块,则使用每个拆分子字符串调用该块。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 String.split。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。