导入工具

正则表达式(TMS)

文本由 Phrase Language AI 从英语机器翻译而得。

正则表达式(缩写为regex或regexp)是一串字符,它们构成一个搜索模式,主要用于与字符串的模式匹配或字符串匹配。功能类似于查找和替换更复杂、更具体的操作,或者作为排除定义内容的方法。有关正则表达式的详细说明和使用字符表,请参阅维基百科条目。

要同时使用多个正则表达式,请在它们之间插入一个管道字符 |

正则表达式可用于 CAT 桌面编辑器中的筛选、搜索和替换字段搜索内容功能的源字段和目标字段、 文件导入设置中的转换为标记功能和自定义断句规则

重要

Phrase 支持 Java 正则表达式,但将拒绝复杂的正则表达式以保护系统免受过载。复杂正则表达式是指包含其他量词(占有式除外)的组上带有量词(占有式除外)的正则表达式。

常规示例

导入文件和在编辑器中使用正则表达式搜索和替换功能时将文本转换为标记的示例:

示例

说明

<[^>]+>

represents <html_tag>

\{[^\}]+\}

表示{变量},

\[[^\]]+\]

表示[变量],

\[\[.+?\]\]

代表 [[aa[11]bb]]。

\$[^\$]+\$

代表 $operator_Name1$。

\d+

代表数字。另外,[0-9]+

[A-Za-z0-9]

代表任何字母数字字符。

.+\@.+\..+

email address name@domain.com

\d{4}[-]\d{2}[-]\d{2}

日期 2018-08-01

\s$

句段末尾的空格

^\s

句段开头的空格

\s\s

双空格

^\d

句段开头的数字

\w+\s\s\w+

单词之间的双空格

\s\n

任何空格字符之前的换行符

\S\n

任何非空格字符之前的换行符

<[^>]+>|\$[^=]+=

转换 php 变量和 html 代码($svariable['name'] =)

^\s*\'[^:]+:

转换 javascript 的字段字符串,并在行首添加空格 ('key':)

\{\{[^\}]+\}\}|\'[^']+\'

不翻译{{text here}}'{{text here}}内容并将其转换为标记

TXT 导入

导入特定文本时正则表达式示例:

  1. ##错误信息##1##数字必须大于0.##Z##

    要导入 ##1####Z## 之间的文本,请使用正则表达式:(?<=##1## )。*(?= ##Z##)

  2. 错误信息(“数字必须大于0.”)

    要导入 (" 和 ") 之间的文本,请使用正则表达式: (?<=\(").*(?="\))

  3. 'errorMessage' = '该数字必须大于0.'

    要导入 = 符号之后和 ' 与 ' 之间的文本,请使用正则表达式:(?<=\= ')。*(?=')

  4. errorMessage = "this is to be translation"

    要导入 = 符号之后和 '' 之间的文本,请使用正则表达式: (?<=\= ")。*(?="")

  5. msgstr(“该数字必须大于0.”)

    要使用 TXT 过滤器导入单语 PO 文件中的 msgstr 字符串,请使用正则表达式: (?<=msgstr ")。*(?=")

  6. # 注意:这是一个注释

    要排除以 # 开头的行,请使用正则表达式:(^[^#])。*)

  7. 值“126”,“DCeT”,“文本(en)”

    要仅导入引号中和带 (en) 的文本,例如文本 (en)',请使用正则表达式: (?<=')[^']*\(en\)(?=')

JSON 导入

JSON 结构示例:

{
"list": {
        "id":"1",
        "value": "text 1 for translation."
        },
"text": {
        "id":"2",
        "value": "text 2 for translation."
        },
"menu": {
        "id":"3",
        "value": "text 3 for translation."
         },"array": ["blue","green"],"arrays": [{        "color": "blue",        "title":“蓝色”
         },         {        "color": "green",        "title":“绿色” } ] }
  • 用于导入所有级别的值,请使用:(^|.*/)value

  • 对于仅从列表中导入一个值,请使用: list/value

  • 要从列表和/或菜单导入值,请使用 | (OR) 运算符: list/value|menu/value

  • 对于仅从菜单导入值的第一个实例,请使用: menu\[1\]/value

  • 用于导入字符串之后的 JSON 数组的内容,请使用:(^|.*/)array\[.*\]

  • 要导入特定对象数组的内容,请使用:(^|.*/)arrays\[.*\]。*

YAML 导入

YAML 飞行示例:

标题:A
text: translate A
类别:
  标题:B
  文本:翻译B
类别:
  标题:C
  text: translate C
类别:
  内容:
      标题:D
      text: translate D

正则表达式导入:

  • “翻译A”文本

  • “翻译 C”类别\[2\]/文本

  • “翻译D”类别\[\d+\]/内容[\1\]/文本

  • 所有文本:文本|类别\[\d+\]/文本|类别\[\d+\]/内容[\d+\]/文本

断句规则

OkapiJavaUnicode 用于 .SRX 文件中的断句规则。

在 .SRX 文件中使用正则表达式很复杂,建议在尝试使用它们之前先了解正则表达式的基础知识。

无间断规则(缩写等)和间断规则(句尾带点等)在 .SRX 文件中。

示例

说明

[\p{C}]

无形的控制字符。

[\p{Z}]

空格

[\p{Lu}]

带有小写变体的大写字母。

[\p{N}]

任何类型的数字字符。

\Q ... \E

报价的开始和结束 - (\Q大约\E)。这是用于缩写。

\t

制表符

\n

新行

\u2029

段落分隔符

\u200B

零宽度空间

\u3002

象形句号

\ufe52

小句点

\uff0e

全宽句点

\uff61

半宽度表意句号

\ufe56

小问号

\uff1f

全宽问号

\u203c

双感叹号

\u2048

问题感叹号

\u2762

重感叹号装饰

\u2763

重心感叹号装饰

\ufe57

小感叹号

\uff01

全宽感叹号

常见自定义 QA 检查

QA 检查

原文正则表达式

译文正则表达式

译文中的其他数字

\d

\d

标记顺序(未配对)

^.*\{1\}.*\{2\}.*$

^.*\{1\}.*\{2\}.*$

标记顺序(未配对)

^.*\{1\}.*\{2\}.*\{3\}.*$

^.*\{1\}.*\{2\}.*\{3\}.*$

标记顺序(未配对)

^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$

^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$

标记顺序(已配对)

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*$

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*$

标记顺序(已配对)

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*\{3\&gt;.*\&lt;3\}.*$

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*\{3\&gt;.*\&lt;3\}.*$

标记前的空格

\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

标记后的空格

(\{[1-9][0-9]*\}|\{[1-9][0-9]*>>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})\s

(\{[1-9][0-9]*\}|\{[1-9][0-9]*>>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})\s

标记前没有空格

\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

缺少方括号

[^\[\]]*\[[^\[\]]*\][^\[\]]*

[^\[\]]*\[[^\[\]]*\][^\[\]]*

缺少圆括号

[^\(\)]*\([^\(\)]*\)[^\(\)]*

[^\(\)]*\([^\(\)]*\)[^\(\)]*

这篇文章有帮助吗?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.