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


Ruby String.scan用法及代码示例


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

用法

scan(pattern) → array
scan(pattern) {|match, ...| block } → str

两种形式都遍历 str ,匹配模式(可能是 Regexp String )。对于每个匹配,都会生成一个结果并将其添加到结果数组或传递给块。如果模式不包含任何组,则每个单独的结果都包含匹配的字符串 $& 。如果模式包含组,则每个单独的结果本身就是一个数组,每个组包含一个条目。

a = "cruel world"
a.scan(/\w+/)        #=> ["cruel", "world"]
a.scan(/.../)        #=> ["cru", "el ", "wor"]
a.scan(/(...)/)      #=> [["cru"], ["el "], ["wor"]]
a.scan(/(..)(..)/)   #=> [["cr", "ue"], ["l ", "wo"]]

和块形式:

a.scan(/\w+/) {|w| print "<<#{w}>> " }
print "\n"
a.scan(/(.)(.)/) {|x,y| print y, x }
print "\n"

产生:

<<cruel>> <<world>>
rceu lowlr

相关用法


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