次の例でなぜ#2
機能せず、機能するのか混乱してい#3
ます。
#1. get `o` if immediately preceded by J
"Jones Bond".scan(/(?<=J)o/) #=> o
#2. get `o` if preceded by J anywhere. Since `J` occurs once I am using `+`
"James Bond".scan(/(?<=J)+o/) #=> [] empty
#3. get `o` if preceded by J anywhere zero or more times by using `*`
"James Bond".scan(/(?<=J)*o/) #=> o
簡単に覚えられるように翻訳lookbehind
します。それが正しいか?left-to-right
lookahead
right-to-left