正規表現の先読みがちょっと理解できた。
ベストタイミング!昨日全く理解できなかった、(?=foo)がやっと理解できた!!
404 Blog Not Found regexp - lookahead and lookbehind assertions
より。
RegexpにおけるAssertionは、その条件が合致するところまで検索カーソルを移動する
・・・よくわからないので、ふくろう本を読み返してみた。
先読み処理は、条件にあった"位置"にマッチする。
Its easy!
sの前に'を付けたいとき、
/s\b/だと"s"にマッチしてしまう。置換するときちょっと困る。(代替はある)
だから・・・(?=s\b)で、"位置"だけマッチさせる。
p "Its easy!".gsub(/(?=s\b)/, "'") #=> "It's easy!"
Itとsの間の"位置"にマッチ出来ました。
正規表現の先読みがちょっと理解できた。