それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

rubyの置換でコールバックを使う。

JavaScript の String#replace はコールバックが使えて便利。

置換でコールバックの関数使えると便利なんですよね。

> a.replace(/a/, function(e){ console.log(e); return ''})
a
'bc'
>

js のこの仕様が結構過ぎで多用しまくっててクセになってた

ruby でもブロック渡せることを知った。

'abc'.gsub(/a/){ 'abc' } #=> "abcbc"

ブロック渡せるの便利だよね。大雑把な正規表現でも細かい部分を微調節できるし。正規表現をアレコレいじくり回して直感的じゃなくなったり、複雑になりすぎた正規表現を調整できる。

match でもブロック使える

>> 'abc'.match(/(.)/){|e|  p e ; nil   }
#<MatchData "a" 1:"a">
=> nil

正規表現が複雑になり過ぎないように、ブロックを使うのも悪くないよね。

参考資料

gsub, gsub! (String) - Rubyリファレンス