正規表現の肯定/否定 先読み/後読み

正規表現で否定グループを作る - YHR’s notesのついでに、
そもそも先読みとか後読みとか何なのかをメモ。

すでになにか正規表現が作ってあるとします。この正規表現をXとすると、
先読み・後読みは

  • Xに対する条件付けとして使うことができるが、マッチ位置や先方参照には影響しない

のが特徴といえます。

java.util.regex.PatternのJavadoc http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/regex/Pattern.html には

(?=X) X、幅ゼロの肯定先読み
(?!X) X、幅ゼロの否定先読み
(?<=X) X、幅ゼロの肯定後読み
(?

とありますが、幅ゼロというのはマッチ位置に影響しない、ということだと思います。