Sin*_*ity 3 ruby regex arrays string self
例如,假设我想要一个字符串并为每个az字符添加1个值.我正在寻找具有类似语法的东西:
str = 'abc123'
str.gsub(/[a-z]/, self.next!)
Run Code Online (Sandbox Code Playgroud)
给出一个输出:bcd123我知道我可以使用一些代码,如:
irb(main):075:0> 'abc123'.split('').map{|x| if x =~ /[a-z]/ then x.next! else x = x end }.join
=> "bcd123"
Run Code Online (Sandbox Code Playgroud)
然而,这似乎相当草率,效率不高.我认为有一个更简洁的方法来完成同样的壮举.
提前致谢.
fal*_*tru 14
String#gsub接受一个可选块.块的返回值用作替换字符串.
str.gsub(/[a-z]/) { |x| x.next }
# => "bcd123"
Run Code Online (Sandbox Code Playgroud)
使用&:next语法的较短版本:
str.gsub(/[a-z]/, &:next)
# => "bcd123"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |