正则表达式示例

以下是 QA Checker 与正则表达式配合使用的几个示例。

选择操作 > 示例后,QA Checker 3.0 > 正则表达式设置中会提供示例列表。选择任意示例都会显示其详细信息。然后,单击添加项目即可将示例添加至列表。

如果您要创建自己的表达式,以下对每个条件的解释会有所帮助。

如果译文和原文正则表达式模式匹配则报告
如果在原文句段和译文句段中找到该格式,则仅报告错误。
可用于检查目标数字是否未本地化。例如,是否 1.23 未翻译为 1,23?
RegEx。
  • 原文 - \d\.\d{2}
  • 译文 - \d\.\d{2}
您也可以使用该选项来检查财务数据是否已全部本地化。例如,是否 £12,589 被翻译为 £12,589,而不是 £12.589?但是,这种方法的用途有限,因为它只检查模式,不检查数字本身。
RegEx:
  • 原文 - £\d+,\d+
  • 译文 - £\d+,\d+
如果译文匹配但原文不匹配则报告
如果仅在译文句段而非原文句段中找到该格式,则仅报告错误。
可用于在没有术语库的情况下检查术语。您可以确保某些词语不会被混淆。这是一个英文 - 法语的例子。
RegEx:
规则 1
  • 原文 - file
  • 译文 - fichier
规则 2
  • 原文 - database
  • 译文 - base de données
规则 3
  • 原文 - directory
  • 译文 - répertoire
如果原文匹配但译文不匹配则报告
如果仅在原文句段而非译文句段中找到该格式,则仅报告错误。
可用于检查句子末尾是否缺少标点符号。在这种情况下,末尾是一个句点。
RegEx:
  • 原文 - \.$
  • 译文 - \.$
如果原文匹配(仅检查原文)则报告
仅检查原文句段的格式,不检查译文句段的格式。若在原文句段中找到格式,则报告错误。
可用于检查原文中的内容。例如,如果原文文件中包含的产品代码必须根据所提供参考材料中某些查找表来为不同国家/地区更改代码。这不是自动检查,但有助于找到根据参考材料手动检查的句段。例如,原文中的代码如下所示:GB-DIN-234/12、GB-DIN-329/22 或 GB-DIN-912/87。
RegEx:
  • 原文 - GB-DIN-\d{3}/\d{2}
如果译文匹配(仅检查译文)则报告
仅检查译文句段的格式,不检查原文句段的格式。若在译文句段中找到格式,则报告错误。
这通常用于检查数字,确定数字和单位(基于单位列表)之间没有不可分空格。
RegEx:
  • 译文 - \d\[^xA0](m|mm|cm|km|V|mV|µV|l|ml|°C|Nm|A|mA|bar|s|ms|kV|Hz|kHz|MHz|t|kg|g|mg|W|kW|MW|Ah|mAh|N|kN|obr|min|µm|μm|µS|Pa|MPa|kPa|hPa|mbar|µF|dB|gal|µs|Nl|lux)\b
如果原文与译文匹配但有不同字数则报告
如果在原文句段和译文句段中找到该格式的数量不一致,则仅报告错误。例如,如果“RWS”在原文中出现了两次,它也应该在译文中出现两次。
RegEx:
  • 原文 - \bRWS\b
  • 译文 - \bRWS\b
分组搜索表达式 - 如果原文匹配但译文不匹配则报告
您可以准确检查在原文中发现的内容,并确保对译文进行正面或负面验证。前面的检查是查找匹配模式,而该项检查是查找匹配内容。
该项检查使用原文 RegEx 中指定组的反向引用来构建译文表达式中的字符串,以搜索译文句段。若译文不包含正确的字符串,则报告错误。

以下面两个句段为例。QA Checker 将在原文句段中查找 p. 45 并使用 45 作为译文表达式中的反向引用来构建搜索译文句段 S. 45 的字符串。由于译文句段包含 S. 46 而非 S.45,译文句段将报告警告。

RegEx:
  • 原文 - p. (\d)
  • 译文 - S. $1

原文句段:"See more details on p. 45 of our book."

译文句段:“Für mehr Details, sehen Sie auf S. 46 unseres Buchs nach.”

另一个示例是检查方括号内写入的内容是否已翻译。
RegEx:
  • 原文 - (\[[^]]+\])
  • 译文 - $1
您还可以检查译文句段中是否存在数字,无需考虑译文中数字的更改顺序。本示例会报告警告,因为在译文句段中未找到 10。
RegEx:
  • 原文 - (\b\d+\b)
  • 译文 - \b$1\b

原文句段:“10 times I told you 100 is enough”

译文句段:“100 mal habe ich dir gesagt, dass 100 genug ist”

您可以使用以下示例来区分某些字符结构。在本示例中,当您将“d)”用于行号时需要报告,但在其他任何情况下都不需要。
RegEx:
  • 原文 - (^\w\))
  • 译文 - (^$1)

原文句段:“d) Pigs and other animals (in Germany).”

译文句段:“d) Schweine und andere Tiere (in Deutschland).”

系统会报告在原文和译文中找到“d)”,但如果译文是“b) Schweine und andere Tiere (in Deutschland).”,那么就不会有报告。
分组搜索表达式 - 如果原文和译文匹配则报告
使用原文 RegEx 中指定组的反向引用来构建译文表达式中的字符串,以搜索译文句段。若在译文句段中找到匹配字符串,但包含禁用的变体,则报告错误。
另一个示例可能是有时您需要复制原文中的模式,然后在译文中稍作更改。如果您的货币书写方式是 € 123,45,但对方需要的书写方式是 123,45 €,您可以按如下方式进行检查:
RegEx:
  • 原文 - (€) (\d{3},\d{2})
  • 译文 - $2 $1

有关反向引用的信息,请参阅 正则表达式