正则表达式(缩写为 regex 或 正则表达式)是一系列字符,它们形成一个搜索模式,主要用于与字符串或字符串匹配的模式匹配。功能类似于 查找和替换 具有更复杂和特异性的操作。请参阅维基百 科条目, 了解正则表达式的详细说明和已用字符表。
至一次使用多个正则表达式,插入它们之间的管道字符 |
。
正则表达式可用于CAT桌面编辑器中的筛选、搜索和替换字段、搜索内容 , 功能的原文和译文字段、文件导入设置 中的 转换为标记 功能以及自定义分段规则 .
重要
Phrase支持 Java 正则表达式, ,但会驳回复杂的正则表达式来保护系统免受过载的影响。复杂正则表达式是在包含其他量词(所有格除外)的组上具有量词(所有格除外)的正则表达式。
导入文件时将文本转换为标记的示例,并在编辑器中使用正则表达式进行搜索和替换功能:
例 |
描述 |
---|---|
<[^>]+> |
represents <html_tag> |
\{[^\}]+\} |
表示 {变量}, |
\[[^\]]+\] |
represents [variable], |
\[\[.+?\]\] |
表示 [[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 的字段键,并在行首带有已添加空格(“键”:) |
\{\{[^\}]+\}\}|\'[^']+\' |
不翻译 {{text here}} '{{text here}} 内容 并将其转换为 标记 |
导入具体文本时的正则表达式示例:
-
## 错误消息 ##1## 该数字必须大于 0。##Z##
至 导入 ##1## 和 ##Z## 之间的文本,请使用正则表达式:(?<=##1## ).*(?= ##Z## )
,
-
错误消息(“数字必须大于 0。
至 导入 (“ 和”) , 之间的 文本,请使用正则表达式:
(?<=\(“).*(?=”\))
“错误消息” =“数字必须大于 0”。
至 导入 = 符号后面和 ' 和 ' 之间的 文本,请使用正则表达式:(?<=\= ').*(?=' , )
-
错误消息 =“这是要翻译的”
至 导入 = 符号后面和“和”之间的文本使用正则表达式:
(?<=\= “).*(?=”)
-
msgstr(“数字必须大于 0。
至 导入 msgstr 字符串使用 TXT 筛选器的单语言汇票文件中,请使用正则表达式:
(?<=msgstr“).*(?=”)
# 注意:这是一个注释
至排除以 # 开头 的行,请使用正则表达式:(^[^# , ].*)
值“126”、“DCeT”、“文本 (英文)”
至 导入仅使用引号和带 (en) 的文本 ,例如文本 (en)' 使用正则表达式:(?<=')[^']*\(en\)(?='),
JSON 结构示例:
{
"list": {
"id":"1",
“值”:“用于翻译的文本 1”。
},
"text": {
"id":"2",
“值”:“用于翻译的文本 2”。
},
"menu": {
"id":"3",
“值”:“用于翻译的文本 3”。
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title":“蓝色”
}, { "color": "green", "title":“绿色” } ]}
-
要导入每个值而不考虑级别,请使用: (^|.*/)值
-
要仅从列表中导入一个值,请使用: 列表/值
-
要从列表和/或菜单导入值,请使用 |(或)运算符: 列表/值|菜单/值
-
要仅从菜单中导入值的第一个实例,请使用: menu\[1\]/value
-
要导入某个键后面的 JSON 数组的内容,请使用: (^|.*/)array\[.*\]
-
要导入对象具体数组的内容,请使用: (^|.*/)arrays\[.*\].*
YAML 苍蝇示例:
标题:A
文本:翻译 A
类别:
标题:B
文本:翻译 B
类别:
标题:C
文本:翻译 C
类别:
content:
标题:D
文本:翻译 D
导入正则表达式:
-
仅 “翻译 A” : 文本
-
仅 “翻译 C”: 类别\[2\]/文本
-
仅 “翻译 D”: 类别\[\d+\]/内容[\1\]/文本
-
all text: text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text
Okapi, 、Java 和 Unicode 用于 中的分段规则。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检查
源正则表达式
目标正则表达式
译文中的其他数字
\d
\d
标签订单(未配对)
^.*\{1\}.*\{2\}.*$
^.*\{1\}.*\{2\}.*$
标签订单(未配对)
^.*\{1\}.*\{2\}.*\{3\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*$
标签订单(未配对)
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
标签订单(已配对)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
标签订单(已配对)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<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}\})
缺少方括号
[^\[\]]*\[[^\[\]]*\][^\[\]]*
[^\[\]]*\[[^\[\]]*\][^\[\]]*
缺少圆括号
[^\(\)]*\([^\(\)]*\)[^\(\)]*
[^\(\)]*\([^\(\)]*\)[^\(\)]*