Rubyの範囲演算子

(注)以下は簡単なことしか書いていないのでRuby初学者以外は読んでもあまり得るものはありません。

Rubyの範囲演算子には境界を含む[..]と境界を含まない[...]の2つがあって、境界を含まない方の使い道が微妙だなと一瞬思ったけど、文字列をごにょごにょ編集するような場合に便利かも。

例えば、 "XXXXX(YYYYY)"という文字列から括弧を除外した"XXXXX"と"YYYYY"という部分文字列を得たいとき。

[..]を使うと

# encoding: utf-8

str = "範囲演算子(境界含む)"

kakko = str.index('')
toji  = str.index('')

str1 = str[0..(kakko - 1)] 
str2 = str[(kakko + 1)..(toji - 1)] 

p str1 # => "範囲演算子"
p str2 # => "境界含む"

となるが、

[...]を使うと

str = "範囲演算子(境界除外)"

kakko = str.index('')
toji  = str.index('')

str1 = str[0...kakko]
str2 = str[(kakko + 1)...toji]

p str1 # => "範囲演算子"
p str2 # => "境界除外"

という具合で、多少すっきり書けたりする。これは例なので、もっと読みやすくとかもっと簡単に書けるとは思うが。何かを探してその境界前後で何かの処理をする場面というのは確かに多いから便利な機能だな。

参考:Rubyリファレンスマニュアル:範囲式
http://www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html#a.c8.cf.b0.cf.bc.b0