{{category Perl}} ここに書くことなのかどうなのか。 look-ahead look-behind backreference なんだか、lookahead=前方参照、lookbehind=後方参照、backreference=後方参照、と訳されている。 明らかに誤訳だろ。 まず、lookbehindとbackreferenceはぜんぜん違う。 lookahead、lookbehindは、あるポイントの正規表現パターンが、自分の前後のパターンに「係っている」ということ。 自分自身の存在が、その前後のパターンのマッチ条件に組み入れられている、というか。 lookahead: (pattern)(?=ahead) aheadが存在している場合に限り、patternはマッチする。 (?=ahead)は自分の"ahead"にあるpatternをlookしている。。。なんのこっちゃ。 lookbehind: (?<=behind)(pattern) behindが存在している場合に限り、patternがマッチする。 (?<=behind)は自分の"behind"にあるpatternをlookしている。。。 backreference: $nのように正規表現全体のマッチが行われた後、$nが参照される。参照するのはプログラマが参照する。 lookahead、lookbehindは正規表現パターンが、自分自身の前後に係るので、そういう性質をプログラマが利用するのであって、ぜんぜん違う。 backreferenceはマッチ後参照。 lookaheadは前のパターンに係る条件。 lookbehindは後のパターンに係る条件。 というわけで、ここでわけのわからない訳語を考えてみる。 条件は、漢語にすること。 backreference: 照合後参照 lookahead: 前係照合 lookbehind: 後係照合 意図通りわけが分からない造語ができた。 しかし、前方参照、後方参照の意味不明さとさして変わらないだろう。 オレオレ用語: backreference: 後方参照 lookahead: ルックアヘッド lookbehind: ルックビハインド こうしておけば誤解がないだろう。