トップ 一覧 検索 ヘルプ RSS ログイン

正規表現.plの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{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: ルックビハインド
こうしておけば誤解がないだろう。