정규 표현식 요약표
문자 일치
| [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?)와 동일합니다.