关于正则表达式中的几个术语的译法

2008年5月26日星期一

正则表达式中的look(ahead|behind|around)功能是使其强大的重要原因。关于这种匹配方式存在下面几个术语:
positive lookahead
negative lookahead
positive lookbehind
negative lookbehind
positive lookaround
negative lookaround

中文往往会把它们按字面意思翻译,positive和negative翻译成正向/负向,从而有了“正向预查”,“负向预查”的译法,但这显然没有表明出术语的真实含义---positive和negative表示的是检查是否存在这个pattern,positive表示存在,negative表示不存在。或者说检查pattern后的结论,"是"或者"否"。而ahead和behind才是向前/向后,或者正向/反向。关于ahead和behind,也可以从逻辑上来理解:lookahead是预查(文字尚未出现),lookbehind是复查(文字已经出现)。或者延用原来的一种译法,negative 译为“排除”,那么我想positive就可以译为“确认”,negative lookbehind译为“反向排除”,positive lookahead译为“正向确认”,等等

结合起来我认为这样翻译比较像术语:

positive lookahead -- 预查确认
negative lookahead -- 预查排除
positive lookbehind - 复查确认
negative lookbehind - 复查排除
positive lookaround - 双向确认
negative lookaround - 双向排除

这样比英文还要明了一点。

0 个评论: