导入工具

正则表达式 (TMS)

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

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

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

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

重要

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 代码 ($s variable['name'] =)

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

转换 javascript 的字段键,在该行开头添加空格(“键”:)

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

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

TXT导入

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

  1. □ 错误消息 □1□ 该数字必须大于 0。 □Z□

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

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

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

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

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

  4. errorMessage = "这是要翻译的"

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

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

    要使用TXT筛选导入单语PO文件中的msgstr Strings,使用regexp: (?<=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":“绿色”} ] }
  • 导入每个值而不考虑级别,使用:(^|.*/)值

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

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

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

  • 要导入某个键之后的 JSON 数组的内容,使用:(^|.*/)数组\[.*\]

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

YAML导入

YAML 飞行示例:

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

用于导入的正则表达式:

  • “翻译 A”文本

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

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

  • 所有文本:text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text

断句规则

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

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

.SRX 文件中有无间断规则(缩写等)和间断规则(句段以点结尾等)。

示例

说明

[\p{C}]

无形的控制字符。

[\p{Z}]

空格

[\p{Lu}]

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

[\p{N}]

任何类型的数字字符。

\Q ... \E

报价的开始和结束 - (\QApprox.\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.