Skip to content

정규 표현식 요약표

문자 일치

[abc] a, b, c 중 임의의 한 문자 일치
[^abc] a, b, c를 제외한 임의의 문자 일치. “^“는 첫 번째 문자로 올 때만 유효함
[a-g] a부터 g 범위 내의 임의의 한 문자 일치
[^a-g] a부터 g 범위를 제외한 임의의 문자 일치
[H-N] H부터 N 범위 내의 임의의 한 문자 일치
[0-9] 0부터 9 범위 내의 임의의 한 문자 일치
[a-gH-N] a-g 또는 H-N 범위 내의 임의의 한 문자 일치
وايل드카드:
. 줄 바꿈을 제외한 모든 문자 일치 ([^\n\r])
\s 공백 문자(줄 바꿈, 탭, 공백 등)
\S [^\s] (공백이 아닌 문자)
\d 숫자: [0-9]
\D [^\d] (숫자가 아닌 문자)
\w 단어 구성 문자: [0-9A-Za-z_]
\W [^\w] (단어 구성 문자가 아닌 문자)

그룹 일치

(a b)
(…) 캡처 그룹
(?:…) 비캡처 그룹
(?<name>…) 또는 (?’name’…) 이름이 지정된 캡처 그룹. “name"은 사용자 정의 가능
(?(condition)true_regex false_regex)

group(0)은 전체 일치 문자열을 가져오는 데 사용되고, group(>0)은 전체 일치 결과에서 하위 캡처 그룹을 가져오는 데 사용됩니다.

참고: Java 1.7 이후부터 이름이 지정된 캡처 그룹을 지원합니다(group 메서드에 문자열 name을 인자로 전달). JS와 Python은 현재 이름이 지정된 캡처 그룹을 기본적으로 지원하지 않습니다.

빈도 범위 (양정자)

{3} 앞의 항목이 정확히 3번 나타나는 경우 일치 ({3,3}과 동일)
{3,6} 앞의 항목이 3~6번 나타나는 경우 일치
{3,} 앞의 항목이 최소 3번 나타나는 경우 일치
{0,6} 앞의 항목이 최대 6번 나타나는 경우 일치
وا일드카드:
* {0,} (0번 이상)
+ {1,} (1번 이상)
? {0,1} (0번 또는 1번)
\w* 탐욕적(Greedy) 모드
\w*? 비탐욕적(Non-greedy) 모드

앵커 (위치 지정)

^ 문자열의 시작
$ 문자열의 끝
\b 단어 경계
\B 단어 경계가 아님
위치 탐색 단언:
(?=exp) 긍정형 전방 탐색 (exp가 뒤에 옴)
(?<=exp) 긍정형 후방 탐색 (exp가 앞에 옴)
(?!exp) 부정형 전방 탐색 (exp가 뒤에 오지 않음)
(?<!exp) 부정형 후방 탐색 (exp가 앞에 오지 않음)

\b(\w+)\b는 (?<=\W?)(\w+)(?=\W?)와 동일합니다.