Flags ?
매칭 결과 없음
도구 설명
정규식 테스터 정보
Regex Tester는 JavaScript 정규식을 텍스트에 실행해 매치, 캡처 그룹, 매치 위치를 실시간으로 보여줍니다.
이메일, URL, 로그 줄, 추출, 폼 검증 패턴을 브라우저에서 로컬로 디버깅할 때 사용합니다.
Regex Tester 사용 방법
- 바깥 / / 없이 정규식을 입력합니다.
- 필요에 따라 g, i, m, s, u, y flags를 켭니다.
- 테스트 텍스트를 붙여 넣고 각 매치, 캡처 그룹, 위치를 확인합니다.
사용 사례
- 폼 검증 패턴이 올바른 입력을 거부하는지 확인합니다.
- 로그와 텍스트에서 ID, URL, 오류 코드를 추출합니다.
- 탐욕적 수량자와 게으른 수량자로 매치 길이 차이를 비교합니다.
플래그, 캡처 그룹, 흔한 실수
JavaScript 정규식은 플래그, 이스케이프, 수량자에 민감합니다. 누락된 백슬래시나 넓은 .* 하나로 결과가 완전히 달라질 수 있습니다.
- g는 모든 매치를 반환하고 없으면 보통 첫 매치만 봅니다.
- i는 case를 무시하고 m은 ^와 $가 line별로 동작하게 합니다.
- 괄호는 캡처 그룹을 만들며 필요 없으면 (?: )를 씁니다.
- 과도한 백트래킹은 긴 텍스트를 느리게 하므로 중첩 수량자를 피하세요.
정규식 테스터 자주 묻는 질문
- /pattern/g처럼 입력해야 하나요?
- 아니요. pattern만 입력하고 flags는 별도 controls에서 설정합니다.
- 왜 match가 예상보다 긴가요?
- .*와 .+는 기본적으로 탐욕적입니다. .*? 또는 더 구체적인 문자 클래스를 시도하세요.
- Test 텍스트가 업로드되나요?
- 아니요. Matching은 브라우저에서 로컬로 실행되고 wetool.site로 업로드되지 않습니다.
Regex Tester와 운영 환경 검증
Tester는 빠른 feedback용입니다. 운영 환경 검증에는 경계 사례, 빈 값, Unicode 입력, 백엔드 정규식 엔진 차이를 포함해야 합니다.
파국적 백트래킹 체크리스트
짧은 샘플에서 동작하는 정규식도 긴 입력에서는 멈출 수 있습니다. 배포 전 중첩 수량자와 지나치게 넓은 와일드카드를 확인하세요.
- (.*)+, (.+)+, (a|aa)+ 같은, 폭발적으로 느려지는 중첩 또는 중복 패턴을 피합니다.
- 가능하면 .* 대신 명시적인 문자 클래스를 사용합니다. 쉼표로 구분된 필드에는 [^,]*가 더 안전합니다.
- 사용자가 제어하는 입력 길이를 제한하고 서버 측 시간 제한을 두거나 안전 실행 제어가 있는 정규식 엔진을 사용합니다.
JavaScript 정규식과 다른 언어 엔진의 차이
온라인 테스터에서 통과해도 백엔드 엔진이 똑같이 동작한다는 보장은 없습니다. 플래그, 후방 탐색, Unicode, 이름 있는 캡처는 엔진마다 다릅니다.
- JavaScript g, i, m, s, u, y flags는 PCRE, Python, Go options와 완전히 대응하지 않습니다.
- 후방 탐색, Unicode 속성 이스케이프, 이름 있는 그룹은 구형 브라우저나 일부 백엔드 런타임에서 사용할 수 없을 수 있습니다.
- Backend로 옮기기 전에 대상 언어 단위 테스트로 빈 값, 긴 입력, emoji, 줄바꿈 사례를 커버합니다.