Regex 치트시트
JavaScript Regex(정규식) 문법을 빠르게 찾아볼 수 있습니다.
자주 쓰는 정규식 문법을 문자, 공백, 문자 집합, 이스케이프, 수량자, 경계, 그룹 순으로 정리한 참고표입니다.
사용 순서
- 찾으려는 대상이 문자, 공백, 문자 집합 중 어디에 속하는지 정합니다.
- 해당 절의 표에서 기호와 설명을 찾습니다.
- 이스케이프가 필요한 문자를 확인하고, 완성한 패턴은 정규식 테스터에서 시험합니다.
예시
\d\.\d 패턴은 "v1.2"에서 "1.2" 부분과 일치합니다. 점을 그대로 쓰면 임의의 한 글자가 되므로 \.으로 이스케이프합니다.
한계
정규식 문법 참고표이며 직접 실행하는 기능은 없습니다. 표는 자바스크립트 기준으로 작성되어 다른 언어에서는 지원 범위가 다를 수 있습니다. 기본 문법 위주라 고급 기능은 다루지 않습니다.
보안 주의
코드 문자열 안에 정규식을 쓸 때는 역슬래시를 한 번 더 써야 하는 경우가 있습니다. \d를 문자열 리터럴에 그대로 넣으면 \d가 아닌 다른 문자로 해석될 수 있으므로, 옮긴 뒤 실제 일치 결과를 확인하세요.
배경 지식
정규식의 기본 단위는 한 글자와 맞는 문자 클래스입니다. \d는 숫자, \w는 영문자와 숫자와 밑줄, \s는 공백 문자를 나타냅니다. 대문자로 쓰면 그 반대 집합을 뜻하므로 \D는 숫자가 아닌 문자, \S는 공백이 아닌 문자입니다. 이 기호들은 문자 클래스 안에서도 같은 의미로 쓸 수 있어, [\d.]처럼 숫자와 마침표를 한 번에 묶을 수 있습니다.
대괄호는 그 안의 글자 중 하나와 맞는다는 뜻이며, 맨 앞에 ^를 붙이면 그 글자들을 제외합니다. .이나 $ 같은 특수 문자는 그대로 쓰면 의미가 바뀌므로 백슬래시로 이스케이프해야 합니다. 대괄호 안에서는 특수 문자의 규칙이 바깥과 조금 다르다는 점도 표에 정리되어 있습니다.
정규식은 짧을수록 읽기 어려워집니다. 자주 쓰는 패턴은 이름 있는 그룹이나 주석으로 설명을 붙이고, 복잡한 패턴은 여러 단계의 검사로 나누는 편이 유지보수에 낫습니다. 이 표는 그런 패턴을 만들 때 기호의 뜻을 빠르게 찾는 용도로 쓰기 좋습니다. 처음 보는 기호가 나오면 절 제목을 먼저 보고 해당 절에서 찾으면 빠릅니다.
자주 묻는 질문
\w와 [A-Za-z0-9_]는 완전히 같은가요?
영문자 기준으로는 같습니다. 다만 한글이나 다른 나라 문자는 \w에 포함되지 않으므로, 유니코드 문자까지 맞추려면 u 플래그와 함께 \p{L} 같은 유니코드 속성을 써야 합니다.
마침표를 그냥 .으로 쓰면 안 되나요?
점은 줄바꿈을 제외한 모든 문자와 맞으므로, 실제 마침표만 찾을 때는 \.으로 이스케이프해야 합니다. 대괄호 안의 [.]은 마침표 글자 하나를 뜻하므로 이스케이프 없이도 됩니다.
이 표에 없는 문법은 어디에서 확인하나요?
표 끝의 참고 및 도구 항목을 보거나, 사용하는 언어의 공식 문서에서 확인하는 것이 가장 정확합니다. 같은 기호라도 언어에 따라 동작이 다를 수 있습니다.