要するに、基本系が(?=regex)で、否定なら!にして、直前なら<を追加する。 例) (?<=hoge)foo(?!bar) → 直前に_hoge_があり、直後に_bar_が無いfooにマッチ (?<!hoge)foo(?=bar) → 直前に_hoge_が無くて、直後に_bar_があるfooにマッチ 構文の中に丸括弧とかいろいろあるけど、マッチする箇所がfooだけなのが重要なところです。 いつ使うのよ 大量の名前リストから「しむらけん」を「バカ殿様」に置換することが年に2回くらいあると思いますが、