String#scan

メソッドString#scan ... 各マッチ工程で括弧、
"("と")"とではさまれた部分ですな 、
にマッチした文字列の配列がわたされる。

また、イテレータとしても用いることができて、
ブロックには、各マッチ工程で括弧、(と)ですな 、にマッチした文字列の配列が
わたされる。

[hirasawa@localhost ruby]$ cat stringScan2.rb 
#!/usr/local/bin/ruby
p cordinate = "( 1 , 2 ),(3,4),(5,6)"
sum = [0,0]
p cordinate.scan(/\s*\(\s*(\d+)\s*,\s*(\d+)\s*\)\s*,?/) 

cordinate.scan(/\s*\(\s*(\d+)\s*,\s*(\d+)\s*\)\s*,?/) do
 |x , y|
 sum[0]  += x.to_i
 sum[1]  += y.to_i
end
p sum
#scan(/\s*\(\s*(\d+)\s*,\s*(\d+)\s*\)\s*,?/) 
#scan(/                                   /) 
#scan( \s*                           \s*,? ) 
#scan(    \(\s*(\d+)\s*,\s*(\d+)\s*\)      ) 
#scan(    \(                       \)      ) 
#scan(      \s*(\d+)\s*,\s*(\d+)\s*        ) 
#scan(      \s*(\d+)\s* \s*(\d+)\s*        ) 
#scan(                 ,                   ) 
#scan(         (   )       (   )           )  括弧ってのはこの部分ですね


[hirasawa@localhost ruby]$ ./stringScan2.rb 
"( 1 , 2 ),(3,4),(5,6)"
[["1", "2"], ["3", "4"], ["5", "6"]]
[9, 12]
[hirasawa@localhost ruby]$