正则表达式 “否定匹配”与反向筛选,让编辑工作更轻松


Posted on Feb 01, 2024 by 辑舟君 968 words views

正则表达式 | “否定匹配”与反向筛选,让编辑工作更轻松

在Trados Studio里面做审校,有时需要验证术语是否统一。比如,一个文档里面有个词test,根据术语表需要统一译为“检验”。但是,由于这个文档是由多个译员完成的,故未能统一译法,有的译作“检查”,有的译作“检测”,有的译作“试验”。当然,也有译作“检验”的。 如何筛选出未按术语表要求翻译的句段呢? 方法一: 从第一个句段开始,依次检查该句段原文是否有test这个词,如果有,再检查译文中该词是否译作了“检验”;如果否,就更正过来,然后进入下一个句段;如果是,就不作任何改动,直接进入下一个句段。重复此步,直到最后一个句段。 方法二: 利用Ctrl+F快捷键调出查找、替换窗口,然后在查找框输入“检查”,在替换框输入“检验”,点击“查找下一个”,跳转到相应满足该匹配的句段,检查原文和译文是否符合要求,并决定是点击“替换”还是“查找下一个”。重复此步,直到最后一个句段。 显然,无论上述哪种方法,都不可避免的要对目标术语已经正确译出的句段进行二次检查,属于冗余劳动。理想的情况是: 1)只筛选出原文包含目标词”test”的句段;且 2)只筛选出译文不包含目标词”test”之译文“检验”的句段。 这一需求用Trados Studio高级显示筛选器(ADF)中的正则表达式功能就可以实现。 需求1:在ADF中选中Content(文本内容)选项卡,在Source(原文)文本框中填入test; 需求2:接上一步,在Target(译文)文本框中填入^((?!检验).)+$

ADF

在这两个文本框右侧有个下拉菜单,从中选AND(且),即默认值,表示两个条件须同时满足。 在这两个文本框下方有个复选框 Regular Expression(正则表达式),选中它。 最后,点击“Apply Filter”(应用筛选器),即可看到筛选结果: 所有原文中包含术语test且译文未按要求统一为“检验”的句段都被筛选了出来。其他满足要求的句段则未出现。这样再修改起来是不是很轻松呢? 以上就是正则表达式的否定匹配,其一般模式为(?!text),即前括号、问号、感叹号、拟否定匹配的字符、后括号。所有标点符号均为单字节字符。拟否定匹配的字符即通过否定词表述的内容,如此处的【不包含目标词”test”之译文“检验”】即为否定表述,拟否定匹配的字符即“检验”。