为高级显示筛选条件指定正则表达式

正则表达式 (regex) 是一种功能强大的搜索公式,可以在文本中找到复杂的字符模式。在 Trados Studio 中,您可以使用正则表达式来筛选与特定模式匹配的句段。Trados Studio 的正则表达式采用 .NET 语法。

关于此任务

要为高级显示筛选条件的原文译文字段指定正则表达式,请执行以下操作:

过程

  1. 编辑器视图中,打开视图选项卡,然后选择高级显示筛选条件 2.0
    要始终显示高级显示筛选条件 2.0 窗口,请选择自动隐藏按钮。
  2. 打开内容选项卡,然后在原文和/或译文字段中输入您的正则表达式。
  3. 从右侧的下拉菜单中选择“AND”或“OR”,这样可合并原文和译文搜索筛选条件。“AND”是一种更严格的筛选条件,仅显示同时匹配原文和译文条件的句段,而“OR”条件会返回与原文或译文条件匹配的句段。
  4. 启用正则表达式选项。否则,Trados Studio 会将内容的 原文译文字段中的字符模式理解为文字字符。
  5. 如果原文或译文 RegEx 包含反向引用,请激活反向引用选项。Trados Studio 支持以下格式的命名和编号反向引用:${group name} $1
  6. DSI 信息字段中,指定是否要将结果限制为特定句段类型。例如,键入 Hheading 以仅显示标题句段。
  7. 要按标记内容筛选句段结果,请启用在文本和标记内容中搜索仅在标记内容中搜索。第一个选项可查找标记属性内容及标记内的可翻译内容,第二个选项仅查找标记属性内容,如 font=Curier New
  8. 如果希望与正则表达式中文字字符的大小写匹配,请打开区分大小写选项。默认情况下,Studio 不区分大小写。例如,RegEx ^T 会返回以小写和大写 T 开头的句段。
  9. 应用筛选条件属性备注文档结构句段颜色抽检选项卡上可用的任何附加筛选条件。
    每个选项卡旁边都会出现一个复选标记 图标,选项卡含有当前搜索所考虑的其他筛选条件。您可在“高级显示筛选条件”底部的状态栏中看到应用的筛选条件和搜索结果。

示例

正则表达式示例
结果正则表达式解释

显示原文和译文中具有不同大写字母的所有句段

原文:^[A-Z]

译文:^[a-z]

确保启用区分大小写选项。否则,正则表达式引擎会同时查找两种模式的小写和大写字符串。

^ 插入符表示句段的开始。

[A-Z] 描述了所有大写字母的范围,而 [a-z] 描述了所有小写字母的范围。

显示原文和译文中具有不同句末标点符号的所有句段

原文: \.$

译文:[^.]$

这些表达式会查找原文文本中以句点结尾但译文中不以句点结尾的所有句段对。

在第一个表达式中,$ 表示字符串或句段的末尾,反斜杠 (\) 后跟一个点表示文字句点。

在第二个表达式中,括号内的插入符表示否定,因此 [^.] 表示任何非句点的字符。

您可以修改该表达式来搜索其他标点符号。例如,以下 regex 会查找原文中以问号结尾但译文中不以问号结尾的所有句段:

  • 原文 regex:?$
  • 译文 regex:[^?]$
正则表达式的反向引用构造

反向引用会重用先前在同一正则表达式 (regex) 或相应替换 regex 中标识的子匹配项。当您需要在同一 regex 或其相应替换 regex 中重复 /(abc)(abc)(abc) 等字符序列时,反向引用非常有用。您可以通过为原始字符组插入反向引用来重用该字符组 (abc),无需多次复制。

您可以使用以下格式的命名和编号反向引用:
语法正则表达式解释
  • \k<name>
  • \number

引用同一 regex 的上一个组件时

  • (?<x> abc ) = \k<x> 匹配 abc=abc
  • “(abc) = \1” 匹配“abc=abc”
  • ${group name}
  • $1

引用相应 regex 的组件

(?<TheBoy>Jack) and (?<TheGirl>Jill) 匹配原文句段 [EN] 中的 Jack and JillJack and Jill went up that hill again!

在译文 regex 中,您可以重用带命名或编号反向引用的组 <TheBoy> 和 <TheGirl> 标识的匹配项:

  • ${TheBoy} e ${TheGirl}
  • $1 e $2

这两种都会匹配译文句段 [IT] 中的 Jack e JillJack e Jill salirono di nuovo su quella collina!

正则表达式的特殊字符

元字符是正则表达式 (regex) 的构建基块。regex 中的字符可以理解为具有特殊含义的元字符,也可以理解为具有文字含义的常规字符。

以下是一些常见的 regex 元字符以及它们在句段中匹配的字符串示例。

元字符说明Regex 示例匹配
\转义字符。取消该列表中任何元字符的特殊含义,该元字符紧跟反斜杠并与文字字符匹配。“www\.rws\.com” “www.netwrix.com”而不是“www,rws,com”
\b定义单词边界。 \bstud“stud”“studio”,而不是“tradosstudio”
\w匹配任何单词字符。 \wID S1.3”中的“I”“D”“S”“1”“3”
\W匹配任何非

单词字符。

\W“ID S1.3”中的“ ”、“.”
\d匹配任何数字字符;相当于 [0-9] Studio\d\d“Studio21”
\D匹配任何非数字字符;相当于 [^0-9] Studio\D“Studio-”
\s匹配任何非打印字符(空格、制表符、换行符或换页符)。Trados\sStudio“Trados Studio”“Trados(制表符)Studio”
\S匹配任何非打印字符。Studio\S“StudioT”“Studio1”
\r匹配回车字符。
\t匹配制表符。
匹配除换行字符之外的任何单个字符。在方括号内,点是文字。例如:a.c abc 等匹配,但 [a.c] 只与 a.c 匹配。“t.....”“Welcome to RWS”中的“to RWS”
[ ]创建一个字符类,使其允许您匹配指定的一组字符中的任何一个。

您可以使用 - 来指定字符的范围。例如 [a-z] 匹配任何单个小写字母。

[au]“Trados”中的“a”“Studio”中的“u”
^匹配句段的起始位置。

您也可以通过在字符类的开头添加 ^ 来匹配不在给定字符类中的任何字符。例如 [^0-9] 匹配不是数字的任何字符。

^[^a-z0-9]句段开头不是小写字母也不是数字的任何字符。

确保启用区分大小写选项。否则,正则表达式引擎会查找不以字母或数字开头的字符串。

*零次或多次匹配上一个元素。\d*\.\d “.0”“19.9”“219.9”
零次或一次匹配上一个元素。它对于查找可选字符非常有用。colo?r “color”“colour”
+一次或多次匹配上一个元素。be+“been”“bent”中的“bee”
|匹配由 | 竖线分隔的任何一个元素。th(e|is|at) “this is the day”中的“the”“this”
{n}n 次精确匹配左侧字符。be{2}“bee”,但不在“be”
( )创建组并“记住”字符串的匹配部分。组可用于反向引用或提取子字符串。

原文:(?<TheBoy>Jack) and (?<TheGirl>Jill)

译文:${TheBoy} e ${TheGirl}

原文句段 [EN] 中的 Jack and JillJack and Jill went up that hill again!

在译文 regex 中,您可以重用带命名或编号反向引用的组 <TheBoy> 和 <TheGirl> 标识的匹配项:

  • ${TheBoy} e ${TheGirl}
  • $1 e $2

这两种都会与译文句段 [IT] 中的“Jack e Jill”匹配:Jack e Jill salirono di nuovo su quella collina!

$
  • 按组或组名称来替换匹配的子字符串。
  • 当用作模式的最后一个字符时,它会将匹配定位在字符串的末尾。

要匹配文字 $,请使用 \$ 或将其包含在字符类中,如 [$] 中。

< >将匹配的子表达式捕获到命名组中。(?<double>\w)\k<double> “deep”中的“ee”
-字符范围:从第一个到最后一个匹配范围内的任何单个字符。[A-Z] “AB123”中的“A”“B”
有用资源
  • Regex buddy 是一个应用程序,使您能够测试、构建、解码和调试正则表达式。它还包括一个常用正则表达式的库。
  • 竞争优势》(A competitive edge)是一篇关于在 Trados Studio 中使用正则表达式的有用的博客文章。
  • 针对初学者的正则表达式》(Regular expressions for beginners) 是一个介绍如何开始使用正则表达式的博客。
  • 正则表达式简介》(Introducing regular expressions) 是 Michael Fitzgerald 撰写的一本在线书籍,介绍了正则表达式的基本原理。
  • 正则表达式中的反向引用构造