정규식(regex 또는 regexp로 약칭)은 주로 Strings 또는 문자열과의 패턴 매칭에 사용하기 위한 검색 패턴을 형성하는 글자 시퀀스입니다. 기능은 더 복잡하고 구체적인 찾기 및 바꾸기<1> 작업과 유사하거나 정의된 콘텐츠를 제외하는 방법으로 사용됩니다. 정규식에 대한 자세한 설명과 사용된 글자 표는 wikipedia<3> 가입을 참조하십시오.
한 번에 여러 정규식을 사용하려면 그 사이에 파이프라인 글자 |<1>를 삽입하십시오.
정규식은 CAT Editor의 필터, 검색 및 바꾸기 필드<1>, 콘텐츠 검색 기능<2>의 소스 및 대상 필드, 파일 가져오기 설정<4>의 세그먼트 분할 규칙<5> 사용자 지정에 사용할 수 있습니다. 변환기와 CAT Desktop Editor는 Java 정규식<6>을 사용하고, CAT Web Editor와 TMS의 검색은 Lucene 정규식<7> 엔진을 사용합니다.
중요 사항
파일 가져오기 시 텍스트를 태그로 변환하고 데스크톱 편집기에서 필터링 및 바꾸기 기능을 위해 정규식을 사용하는 사례:
|
사례 |
설명 |
|---|---|
|
<[^>]+> |
represents <html_tag> |
|
\{[^\}]+\} |
{variable}을(를) 나타냅니다. |
|
\[[^\]]+\] |
[variable]을(를) 나타냅니다. |
|
\[\[.+?\]\] |
represents [[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*\'[^:]+: |
줄 시작 부분에 공백이 추가된 자바스크립트의 필드 키를 변환합니다 ( '키' :). |
|
\{\{[^\}]+\}\}|\'[^']+\' |
{{text here}} '{{text here}} 콘텐츠를 번역하지 않고 태그로 변환합니다. |
|
\{\{[^\}]+\}\} |
{{}} 괄호 사이의 텍스트를 나타냅니다. |
|
\([^\)]+\) |
() 괄호 사이의 텍스트를 나타냅니다. |
|
\^[^\^]+\^ |
^ 표시 사이의 텍스트를 나타냅니다 |
|
\@[^\@]+\@ |
@ 표시 사이의 텍스트를 나타냅니다 |
|
\^[^\^\?]+\? |
^ 및 ? 표시 사이의 텍스트를 나타냅니다 |
|
\'[^']+\' |
' ' 아포스트로피 사이의 텍스트를 나타냅니다 |
|
\"[^"]+\" |
\"\" 따옴표 사이의 텍스트를 나타냅니다 |
|
\%[^\%]+\% |
% 기호 사이의 텍스트를 나타냅니다 |
|
\$\{[^}]*\} |
${ 및 }, 사이의 텍스트를 나타냅니다. 예: ${variable} |
|
\$[a-zA-Z0-9\-_]+ |
$로 시작하는 문자열을 나타냅니다. 예: $appName |
|
(?<=\: ").*(?=") |
콜론과 공백 뒤의 큰따옴표 안의 텍스트를 나타냅니다. 예: |
|
(?<=\\: ').*(?=') |
콜론과 공백 뒤의 작은따옴표 안의 텍스트를 나타냅니다. 예: |
|
(?<=\=).*(?=) |
등호 뒤의 공백 없는 텍스트를 나타냅니다. 예: key=value |
|
(.*)= |
등호 앞의 텍스트를 나타냅니다 |
|
=(.*) |
등호 뒤의 텍스트를 나타냅니다 |
|
\/\/\S* |
하이퍼링크를 나타냅니다. Also, https:\/\/\S* |
|
</?mrk[^>]*> |
HTML/XML 열기 및 닫기 |
참고
TMS에서 TXT 파일은 줄 단위로 처리되므로 다른 환경에서 작동하는 특정 정규 표현식이 예상대로 작동하지 않을 수 있습니다.
특정 텍스트를 가져올 때의 정규 표현식 예시:
-
## ErrorMessage ##1## 숫자는 0보다 커야 합니다. ##Z##
##1##와(과) ##Z## 사이의 텍스트를 가져오려면 다음 정규식을 사용하십시오:
(?<=##1## ).*(?= ##Z##) -
ErrorMessage (\"숫자는 0보다 커야 합니다.\")
(\" 및 \") 사이의 텍스트를 가져오려면 다음 정규식을 사용하십시오:
(?<=\\(\").*(?=\"\\)) -
'errorMessage' = '숫자는 0보다 커야 합니다.'
= 기호 뒤와 ' 및 ' 사이의 텍스트를 가져오려면 다음 정규식을 사용하십시오:
(?<=\\= ').*(?=') -
errorMessage = \"이것은 번역될 것입니다\"
= 기호 뒤와 'and' 사이의 텍스트를 가져오려면 다음 정규식을 사용하십시오:
(?<=\\= \").*(?=\") -
msgstr (\"숫자는 0보다 커야 합니다.\")
단일 언어 PO 파일에서 TXT 필터를 사용하여 msgstr Strings을 가져오려면 다음 정규식을 사용하십시오:
(?<=msgstr \").*(?=\") -
# 참고: 이것은 참고입니다
#(으)로 시작하는 줄을 제외하려면 다음 정규식을 사용하십시오:
(^[^#].*) -
값 '126', 'DCeT', 'Text (en)'
따옴표 안에 있고 (en)이(가) 포함된 텍스트만 가져오려면(예: Text (en)'), 다음 정규식을 사용하십시오:
(?<=')[^']*\\(en\\)(?=')
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": "BLUE"
}, { "color": "green", "title": "GREEN" } ]}
-
레벨에 관계없이 모든 값을 가져오려면 다음을 사용하십시오:
(^|.*/)value -
목록에서 하나의 값만 가져오려면 다음을 사용하십시오:
list/value -
목록 및/또는 메뉴에서 값을 가져오려면 | (OR) 연산자를 사용하십시오:
list/value|menu/value -
메뉴에서 값의 첫 번째 인스턴스만 가져오려면 다음을 사용하십시오:
menu\\[1\\]/value -
특정 키를 따르는 JSON 배열의 콘텐츠를 가져오려면 다음을 사용하십시오:
(^|.*/)array\\[.*\\] -
특정 객체 배열의 콘텐츠를 가져오려면 다음을 사용하십시오:
(^|.*/)arrays\\[.*\\].*
YAML 파일 예시:
title: A
text: translate A
categories:
title: B
text: translate B
categories:
title: C
text: translate C
categories:
content:
title: D
text: translate D
가져오기를 위한 정규식:
-
'translate A'만 :
text -
'translate C'만:
categories\\[2\\]/text -
only 'translate D':
categories\[\d+\]/content[\1\]/text -
all text:
text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text
.SRX 파일의 세그먼트 분할 규칙에는 Okapi, Java 및 Unicode가 사용됩니다.
.SRX 파일에서 정규식을 사용하는 것은 복잡하므로, 작업하기 전에 정규식 사용에 대한 기본 지식을 갖추는 것이 좋습니다.
Nobreak 규칙(약어 등) 및 Break 규칙(마침표로 끝나는 문장 등)은 .SRX 파일에 있습니다.
|
사례 |
설명 |
|---|---|
|
[\p{C}] |
보이지 않는 제어 글자. |
|
[\p{Z}] |
공백 |
|
[\p{Lu}] |
소문자 변형이 있는 대문자. |
|
[\p{N}] |
모든 종류의 숫자 글자. |
|
\Q ... \E |
인용구의 시작과 끝 - (\\QApprox.\\E). 이는 약어에 사용됩니다. |
|
\t |
탭 문자 |
|
\n |
줄바꿈 |
|
\u2029 |
문단 구분 기호 |
|
\u200B |
0 너비 공백 |
|
\u3002 |
표의 문자 마침표 |
|
\ufe52 |
작은 마침표 |
|
\uff0e |
전각 마침표 |
|
\uff61 |
반각 표의 문자 마침표 |
|
\ufe56 |
작은 물음표 |
|
\uff1f |
전각 물음표 |
|
\u203c |
겹느낌표 |
|
\u2048 |
물음느낌표 |
|
\u2762 |
굵은 느낌표 장식 |
|
\u2763 |
굵은 하트 느낌표 장식 |
|
\ufe57 |
작은 느낌표 |
|
\uff01 |
전각 느낌표 |
|
`[\u0080-\uFFFF]+` |
\\u0080에서 \\uFFFF까지의 유니코드 범위에 있는 문자 |
|
`[\u00a8\u00b9\u00c4]+` |
대괄호 안에 지정된 유니코드 문자가 한 번 이상 나타남(예: \\u00a8 + \\u00b9 + \\u00c4) |
|
QA 검사 |
소스 정규식 |
대상 정규식 |
|---|---|---|
|
대상에 추가된 숫자 |
|
|
|
태그 순서 (쌍이 없는 태그, 태그 3개인 세그먼트용). 필요한 태그 수에 따라 정규식을 조정하십시오. |
|
|
|
태그 순서 (쌍으로 된 태그, 태그 3개인 세그먼트용). 필요한 태그 수에 따라 정규식을 조정하십시오. |
|
|
|
태그 앞 공백 |
|
|
|
태그 뒤 공백 |
|
|
|
태그 앞 공백 없음 |
|
|
|
쌍으로 된 태그 뒤의 공백이 아닌 문자 |
|
|
|
대괄호 누락 |
|
|
|
소괄호 누락 |
|
|
|
다음 정규식을 사용하여 적절한 언어별 소수점 구분 기호를 사용하여 동일한 십진수 개수를 확인하십시오. |
|
|