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
正規表現が複雑になり過ぎないように、ブロックを使うのも悪くないよね。