西山和広です。

At Sun, 4 Jun 2017 19:28:45 +0900,
俊(とし) wrote:

> なーるほど.これならうまく行きますね.私はこれまで先読みとか後読みはよく理解できなくて使ったことはなかったのですが,ようやく使い道がわかったような気がします.
> 
> ご教示の例で言うと,
>   (?!\2)\w.*
> というのは,次の文字列は \2 ではないよね,そのうえでマッチポイントを動かさずに,\w.*
> にマッチするよね,ということを言っていると理解しましたが,これで間違っていないでしょうか?

あってます。

https://docs.ruby-lang.org/ja/latest/doc/spec=2fregexp.html
の「アンカー」に書いてある ^ や $ や \b などと同じで
「位置」にマッチする「幅0」の正規表現というのが
先読み、後読み(lookahead, lookbehind)を理解するのに
重要だと思います。


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)