정규식(약어: regex 또는 regex)은 문자열 또는 문자열 일치에서 패턴 일치를 위해 주로 사용되는 검색 패턴을 형성하는 문자 시퀀스입니다. 기능은 찾기 및 바꾸기 작업과 유사하지만 더 복잡하고 구체적이거나 정의된 콘텐츠를 제외하는 방법으로 사용됩니다. 정규식 및 사용된 문자에 대한 자세한 설명은 위키백과 항목을 참조하십시오.
여러 정규식을 동시에 사용하려면 그들 사이에 파이프 문자 |를 삽입하십시오.
정규식은 CAT 편집기의 필터, 검색 및 바꾸기 필드, 콘텐츠 검색 기능의 소스 및 대상 필드, 기능의 파일 가져오기 설정 및 세그먼트 분할 규칙 사용자 정의에 사용할 수 있습니다. 변환기와 CAT 데스크톱 편집기는 Java regex를 사용하고, CAT 웹 편집기와 TMS의 검색은 Lucene regex 엔진을 사용합니다.
중요 사항
Phrase는 Java regex를 지원하지만 시스템 과부하를 방지하기 위해 복잡한 정규식을 거부합니다. 복잡한 정규식은 다른 수량자(소유격 제외)가 포함된 그룹에 수량자가 있는 것입니다.
파일을 가져올 때 텍스트를 태그로 변환하고 데스크톱 편집기에서 필터링 및 찾기 및 바꾸기 기능에 정규식을 사용하는 예시입니다:
|
예시 |
설명 |
|---|---|
|
<[^>]+> |
represents <html_tag> |
|
\{[^\}]+\} |
{변수}를 나타냅니다. |
|
\[[^\]]+\] |
[변수]를 나타냅니다. |
|
\[\[.+?\]\] |
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*\'[^:]+: |
javascript의 필드 키를 변환하고 줄의 시작에 공백을 추가합니다 ('key' :) |
|
\{\{[^\}]+\}\}|\'[^']+\' |
{{text here}} '{{text here}} 콘텐츠를 변환하지 않고 태그로 변환합니다. |
|
\{\{[^\}]+\}\} |
{{}} 괄호 사이의 텍스트를 나타냅니다. |
|
\([^\)]+\) |
() 괄호 사이의 텍스트를 나타냅니다. |
|
\^[^\^]+\^ |
^ 기호 사이의 텍스트를 나타냅니다. |
|
\@[^\@]+\@ |
@ 기호 사이의 텍스트를 나타냅니다. |
|
\^[^\^\?]+\? |
^와 ? 기호 사이의 텍스트를 나타냅니다. |
|
\'[^']+\' |
' ' 아포스트로피 사이의 텍스트를 나타냅니다. |
|
\"[^"]+\" |
"" 따옴표 사이의 텍스트를 나타냅니다. |
|
\%[^\%]+\% |
% 기호 사이의 텍스트를 나타냅니다. |
|
\$\{[^}]*\} |
${와 } 사이의 텍스트를 나타냅니다. 예: ${변수} |
|
\$[a-zA-Z0-9\-_]+ |
$로 시작하는 문자열을 나타냅니다. 예: $appName |
|
(?<=\: ").*(?=") |
콜론과 공백 뒤의 큰따옴표 안의 텍스트를 나타냅니다. 예: |
|
(?<=\: ').*(?=') |
콜론과 공백 뒤의 작은따옴표 안의 텍스트를 나타냅니다. 예: |
|
(?<=\=).*(?=) |
등호 뒤의 공백 없이 텍스트를 나타냅니다. 예: 키=값 |
|
(.*)= |
등호 앞의 텍스트를 나타냅니다. |
|
=(.*) |
등호 뒤의 텍스트를 나타냅니다. |
|
\/\/\S* |
하이퍼링크를 나타냅니다. Also, https:\/\/\S* |
|
</?mrk[^>]*> |
HTML/XML 열고 닫는 |
참고
TMS의 TXT 파일은 한 줄씩 처리되므로, 다른 환경에서 작동하는 특정 정규 표현식이 예상대로 작동하지 않을 수 있습니다.
특정 텍스트를 가져올 때의 정규 표현식 예시:
-
## 오류 메시지 ##1## 숫자는 0보다 커야 합니다. ##Z##
##1##과 ##Z## 사이의 텍스트를 가져오려면, 정규 표현식:
(?<=##1## ).*(?= ##Z##)를 사용하세요. -
오류 메시지 ("숫자는 0보다 커야 합니다.")
("와 ") 사이의 텍스트를 가져오려면, 정규 표현식:
(?<=\(").*(?="\))를 사용하세요. -
'오류 메시지' = '숫자는 0보다 커야 합니다.'
= 기호 뒤와 '와 ' 사이의 텍스트를 가져오려면, 정규 표현식:
(?<=\= ').*(?=')를 사용하세요. -
오류 메시지 = "번역될 내용입니다"
= 기호 뒤와 '그리고' 사이의 텍스트를 가져오려면, 정규 표현식:
(?<=\= ").*(?=")를 사용하세요. -
msgstr ("숫자는 0보다 커야 합니다.")
단일 언어 PO 파일에서 TXT 필터를 사용하여 msgstr 문자열을 가져오려면, 정규 표현식:
(?<=msgstr ").*(?=")를 사용하세요. -
# 참고: 이것은 참고 사항입니다
#로 시작하는 줄을 제외하려면, 정규 표현식:
(^[^#].*)를 사용하세요. -
값 '126', 'DCeT', '텍스트 (en)'
인용부호 안의 텍스트만 가져오고 (en)이 있는 경우, 예를 들어 텍스트 (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: 번역 A
categories:
title: B
text: 번역 B
categories:
title: C
text: 번역 C
categories:
content:
title: D
text: 번역 D
가져오기를 위한 정규 표현식:
-
오직 '번역 A' :
text -
오직 '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 파일에서 정규식을 사용하는 것은 복잡하며, 이를 다루기 전에 정규식 사용에 대한 기본 지식이 권장됩니다.
노브레이크 규칙(약어 등)과 브레이크 규칙(문장의 끝에 점 등)은 .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]+` |
유니코드 범위 \u0080에서 \uFFFF까지의 문자 |
|
`[\u00a8\u00b9\u00c4]+` |
대괄호 안에 지정된 유니코드 문자가 하나 이상 포함된 경우, 예: \u00a8 + \u00b9 + \u00c4 |
|
QA 검사 |
소스 정규 표현식 |
대상 정규 표현식 |
|---|---|---|
|
대상에 추가 숫자 |
|
|
|
태그 순서 (짝이 없는, 3개의 태그가 있는 세그먼트용) 필요한 태그 수에 따라 정규 표현식을 조정하십시오. |
|
|
|
태그 순서 (짝이 있는, 3개의 태그가 있는 세그먼트용) 필요한 태그 수에 따라 정규 표현식을 조정하십시오. |
|
|
|
태그 앞의 공백 |
|
|
|
태그 뒤의 공백 |
|
|
|
태그 앞에 공백 없음 |
|
|
|
짝이 있는 태그 뒤의 비공백 문자 |
|
|
|
누락된 대괄호 |
|
|
|
누락된 소괄호 |
|
|
|
다음 정규 표현식을 사용하여 동일한 개수의 동일한 소수 숫자를 확인하십시오. 적절한 언어별 소수 구분 기호를 사용하십시오. |
|
|