정규식(regex 또는 regexp로 약칭)은 주로 Strings 또는 문자열 일치 패턴 매칭에 사용하기 위한 검색 패턴을 형성하는 글자 시퀀스입니다. 기능은 더 복잡하고 구체적인 찾기 및 바꾸기 작업과 유사하거나 정의된 콘텐츠를 제외하는 방법과 유사합니다. 정규식에 대한 자세한 설명과 사용된 글자 표는 wikipedia 가입을 참조하십시오.
여러 정규식을 한 번에 사용하려면 그 사이에 파이프라인 글자 |를 삽입하십시오.
정규식은 CAT Editor의 필터, 검색 및 바꾸기 필드, 콘텐츠 검색 기능<2>의 소스 및 대상 필드, 파일 가져오기 설정의 기능, 세그먼트 분할 규칙 사용자 지정에 사용할 수 있습니다. 변환기와 CAT Desktop Editor는 Java regex를 사용하고, CAT Web Editor와 TMS 검색은 Lucene regex 엔진을 사용합니다.
중요 사항
Phrase는 Java regex를 지원하지만, 시스템 과부하를 방지하기 위해 복잡한 정규식은 거부합니다. 복잡한 정규식은 다른 수량자(소유격 제외)를 포함하는 그룹에 수량자(소유격 제외)가 있는 정규식입니다.
파일 가져오기 시 텍스트를 태그로 변환하고 데스크톱 편집기에서 필터링 및 바꾸기 기능을 위해 정규식을 사용하는 사례:
|
사례 |
설명 |
|---|---|
|
<[^>]+> |
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## 사이의 텍스트를 가져오기 하려면, regex를 사용하십시오:
(?<=##1## ).*(?= ##Z##) -
ErrorMessage ("숫자는 0보다 커야 합니다.")
("와 ") 사이의 텍스트를 가져오기 하려면, regex를 사용하십시오:
(?<=\\(\").*(?=\"\\)) -
'errorMessage' = '숫자는 0보다 커야 합니다.'
= 기호 뒤와 '와 ' 사이의 텍스트를 가져오기 하려면, regex를 사용하십시오:
(?<=\\= ').*(?=') -
errorMessage = "이것은 번역될 것입니다"
= 기호 뒤와 '와' 사이의 텍스트를 가져오기 하려면 regex를 사용하십시오:
(?<=\\= \").*(?=\") -
msgstr ("숫자는 0보다 커야 합니다.")
##1##와 ##Z## 사이의 텍스트를 가져오기 하려면, regex를 사용하십시오: (?<=##1## ).*(?= ##Z##) -
ErrorMessage ("숫자는 0보다 커야 합니다.")
("와 ") 사이의 텍스트를 가져오기 하려면, regex를 사용하십시오:
(?<=\\(\").*(?=\"\\)) -
'errorMessage' = '숫자는 0보다 커야 합니다.'
= 기호 뒤와 '와 ' 사이의 텍스트를 가져오기 하려면, regex를 사용하십시오:
(?<=\\= ').*(?=')
errorMessage = "이것은 번역될 것입니다"
= 기호 뒤와 '와' 사이의 텍스트를 가져오기 하려면 regex를 사용하십시오: (?<=\\= \").*(?=\")
{
"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" } ]}
-
msgstr ("숫자는 0보다 커야 합니다.") -
TXT 필터를 사용하여 단일 언어 PO 파일에서 msgstr Strings를 가져오기 하려면, regex를 사용하십시오:
(?<=msgstr \").*(?=\") -
# 참고: 이것은 참고입니다 -
#로 시작하는 줄을 제외하려면, regex를 사용하십시오: (^[^#].*) -
특정 키를 따르는 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
Okapi, Java 및 Unicode는 .SRX 파일의 세그먼트 분할 규칙에 사용됩니다.
.SRX 파일에서 정규식을 사용하는 것은 복잡하므로 정규식 사용에 대한 기본 지식을 갖춘 후 작업하는 것이 좋습니다.
Nobreak 규칙(약어 등) 및 Break 규칙(마침표로 끝나는 문장 등)은 .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 |
전각 느낌표 |
|
`[\u0080-\uFFFF]+` |
Unicode 범위 \u0080에서 \uFFFF까지의 문자 |
|
`[\u00a8\u00b9\u00c4]+` |
대괄호 안의 지정된 Unicode 문자가 한 번 이상 나타남(예: \u00a8 + \u00b9 + \u00c4) |
|
QA 검사 |
소스 정규식 |
대상 정규식 |
|---|---|---|
|
대상에 추가된 숫자 |
|
|
|
태그 순서 (쌍이 없는 태그, 태그 3개인 세그먼트용). 필요한 태그 수에 따라 정규식을 조정하십시오. |
|
|
|
태그 순서 (쌍으로 된 태그, 태그 3개인 세그먼트용). 필요한 태그 수에 따라 정규식을 조정하십시오. |
|
|
|
태그 앞 공백 |
|
|
|
태그 뒤 공백 |
|
|
|
태그 앞 공백 없음 |
|
|
|
쌍으로 된 태그 뒤의 공백이 아닌 문자 |
|
|
|
대괄호 누락 |
|
|
|
소괄호 누락 |
|
|
|
적절한 언어별 소수점 구분 기호를 사용하여 동일한 십진수 개수를 확인하려면 다음 정규식을 사용하십시오. |
|
|