Regex 테스터
예제 텍스트로 정규식을 테스트합니다.
정규식과 샘플 텍스트를 넣어 일치하는 부분, 캡처 그룹, 이름 있는 그룹을 확인하고 정규식의 구조를 그림으로 보여줍니다.
사용 순서
- 정규식 칸에 패턴을 입력합니다. 잘못된 정규식이면 검증 메시지가 나옵니다.
- 플래그 체크박스(g, i, m, s, u, v)를 필요에 따라 고릅니다. g, s, u는 기본으로 켜져 있습니다.
- 테스트할 텍스트를 입력하면 일치한 부분과 그룹 값이 목록으로 나옵니다.
- 정규식 시각화 영역과 샘플 생성 기능으로 패턴의 구조를 확인합니다.
예시
\d+ 패턴을 "a1 b22 c333"에 적용하면 1(위치 1), 22(위치 4), 333(위치 8) 세 개가 일치합니다.
한계
자바스크립트 정규식 문법을 씁니다. 길이가 0인 일치(예: a*가 빈 문자열과 맞는 경우)는 목록에 넣지 않고 그 자리를 건너뛰어 검색을 이어 갑니다. 예를 들어 a*를 baaa에 적용하면 aaa 한 개만 나옵니다.
보안 주의
중첩된 반복이 많은 패턴은 입력이 조금만 길어져도 브라우저가 오래 멈출 수 있습니다. 외부에서 받은 긴 텍스트를 붙여 넣기 전에 중첩 수량자가 있는지 확인하고, 짧은 샘플로 먼저 응답 시간을 보세요.
배경 지식
정규식은 문자열에서 특정 패턴을 찾기 위한 짧은 표기법입니다. 문자 클래스, 수량자, 경계 표시, 그룹을 조합하며, 괄호로 묶은 부분은 캡처 그룹이 되어 일치한 내용의 일부를 따로 꺼낼 수 있습니다. 이름 있는 그룹은 (?<이름>...) 형식으로 쓰며 결과에서 이름으로 값을 읽을 수 있습니다.
자바스크립트 정규식은 g 플래그가 있으면 문자열 전체에서 여러 번 찾고, u 플래그가 있으면 이모지처럼 두 코드 단위로 된 문자를 한 글자로 해석합니다. s 플래그는 점(.)이 줄바꿈도 포함하게 하고, m 플래그는 ^와 $가 줄의 시작과 끝에 맞도록 바꿉니다. 이 도구는 g, s, u를 기본으로 켜 둡니다.
정규식은 같은 기능이라도 언어마다 문법이 조금씩 다릅니다. 룩비하인드나 일부 유니코드 속성은 최신 엔진에서만 지원되므로, 서버 언어나 오래된 환경에서 쓸 패턴은 대상 환경에서 따로 검증해야 합니다. 같은 패턴을 Python이나 Java로 옮길 때는 이름 있는 그룹 문법과 이스케이프 규칙이 달라질 수 있으므로 테스트 케이스를 함께 옮기세요.
자주 묻는 질문
정규식이 빈 문자열과도 맞을 때 결과에 빈 일치가 나오나요?
나오지 않습니다. 길이가 0인 일치는 목록에 넣지 않고 검색을 이어 가므로, 뒤쪽에 있는 실제 일치는 그대로 나옵니다. 빈 일치 자체를 피하려면 수량자 *를 +로 바꾸거나 최소 한 글자를 요구하는 패턴으로 고쳐 쓰세요.
i 플래그와 u 플래그를 같이 켜도 괜찮나요?
네, 두 플래그는 충돌하지 않으며 함께 쓰는 조합도 흔합니다. i는 영문 대소문자를 같은 글자로 보고, u는 이모지 같은 문자를 한 글자로 해석하므로 두 설정은 서로 다른 역할을 합니다.
정규식 칸에 /abc/g처럼 슬래시와 플래그를 같이 넣어도 되나요?
이 도구는 패턴 본문만 받습니다. 슬래시와 플래그를 같이 넣으면 슬래시도 문자 그대로 일치 대상이 되므로, 플래그는 체크박스로 고르고 패턴만 입력하세요.