# 정규 표현식(regex) 기초

다음 표는 Deep Learning GUI에서 정규식을 이용하기 위한 기초를 제공합니다.

앵커
^ | 문자열 또는 줄의 시작을 지정합니다. 예를 들어 ^0은 0으로 시작하는 문자열과 일치합니다. Note: ^ 문자가 괄호 안에 사용되면, [^ 0]에서 ^ 의미는 시작되지 않습니다.
$ | 문자열 또는 줄의 끝을 지정합니다. 예를 들어 0$는 0으로 끝나는 문자열과 일치합니다.
기본 매칭
. | 모든 문자 하나와 일치합니다. Note: 마침표와 일치하려면, 슬래시를 이용한 이스케이프 문자를 써야 합니다. 예를 들어, \.라고 입력합니다.
\d | 0123456789 범위의 모든 한 자리 숫자와 일치합니다. 실제 숫자 0-9는 숫자를 써서 표현할 수도 있습니다.
\w | 모든 글자, 숫자, 밑줄(_)과 일치합니다. 대소문자를 구별하는 실제 문자는 a-z 또는 A-Z의 문자를 입력하여 표현할 수도 있습니다.
\s | 공백과 일치합니다.
특수 문자
[...] | 대괄호 [ ]는 대괄호 안의 특수 문자와 일치합니다. 예를 들어, [a-z]는 a부터 z 사이의 소문자 하나와 일치하며, T[ao]p은 Tap 또는 Top과 일치합니다. 대괄호는 복합적 구조로 이용할 수 있습니다. 예를 들어, [A-C][0-3][g-i]는 A0g, A0h, B1i, C3g 등의 문자열과 일치합니다.
반복
{...} | 중괄호 { }는 반복을 나타냅니다. 예를 들어, t{2}는 두 개의 t를 반환하고, [def]{3}는 d, e, f로 된 세 자를 반환하며, .{1,4}는 모든 문자 1-4자와 일치합니다.
* | 문자 또는 숫자가 0개 이상 나타남을 의미합니다. 예를 들어, a*는 0개 이상의 문자와 일치합니다.
+ | 문자가 1개 이상 나타남을 의미합니다. 예를 들어, [nop]+는 n, o, p 글자가 하나 이상 있는 경우 일치합니다.
옵션 문자
? | 물음표 ?는 앞에 있는 문자 또는 그룹 0 또는 1개와 일치합니다. For example, 12?3은 123 또는 13과 일치합니다. Note: 물음표와 일치하려면, 슬래시를 이용한 이스케이프 문자를 써야 합니다. 예를 들어, \?라고 입력합니다.
Grouping(그룹)
(...) | 괄호는 문자 그룹을 정의하여, 괄호 내 쌍이 그룹을 형성합니다. 이는 이미지 파일 이름에서 정보를 추출할 때 매우 유용합니다. 예를 들어, 이미지들이 Good_0001.png처럼 특정한 이름 지정 규칙을 따랐는데, 이 이미지들만을 반환하고 싶으면, ^(Good.+)\.png$와 같이 쓸 수 있습니다. 또한 중첩된 그룹을 캡처할 때도 괄호를 쓸 수 있습니다. 위의 예에서, ^(Good(\d+))\.png$처럼 숫자에 따라 검색을 정교하게 할 수 있습니다. 또한, 위에 설명된 quantifiers(한정자)도 괄호 안에 써서 패턴을 캡처할 수 있습니다. 예를 들어, 1000보다 큰 영역을 캡처하고 싶다면, (\d{4})x(\d{4})를 이용할 수 있습니다. 논리적 OR 식별자 |는 다양한 가능 집합 또는 문자를 나타내기 위해 이용할 수 있습니다. 예를 들어, 파일 이름 집합에서 "scratch", "dent", "hole" 등을 반환하고 싶다면, ^(Bad(\d+)(scratch|dent|hole))\.png$를 쓸 수 있습니다.