🔧Toolify

정규식 테스터 (라이브 일치, 그룹, 교체)

정규식과 테스트 텍스트 입력 — 입력하면 일치 라이브 강조. 플래그(g/i/m/s/u) 토글, 캡처 그룹 검사, 교체 미리보기.

플래그
일치 (4)
Hello World, this is a Regex Tester.

관련 도구

작동 방식

플래그 작동

g (전역): 첫 번째 아닌 모든 일치 찾기. 모두 교체 동작에 필요. i (대소문자 무관): /[a-z]/i가 양 케이스 일치. m (다중행): ^와 $가 문자열 시작/끝 대신 줄 바꿈에서 일치. s (도탈): .가 줄 바꿈도 일치. u (유니코드): 0xFFFF 위 코드포인트(이모지, CJK 서로게이트 쌍) 적절 처리.

대부분 /g/i/m로 시작. /s/는 다중 행 텍스트 일치에 유용. /u/는 이모지나 비BMP 문자 만날 수 있을 때 권장 — 그것 없이 /./는 4바이트 이모지를 단일 문자로 일치 안 함.

캡처 그룹과 교체

괄호가 캡처 그룹 생성: '2026-05'에 /(\d{4})-(\d{2})/는 '2026'과 '05' 별도 캡처. 교체에서 $1, $2로 참조. 명명 그룹은 (?<name>...) 사용하고 교체에서 $<name> 참조.

흔한 교체 트릭: $&가 전체 일치 삽입. $1, $2 등이 캡처 그룹 삽입. $$가 리터럴 $ 삽입. 여기 교체 미리보기는 실제 텍스트에 같은 패턴 실행 전 확인 가능 — 프로덕션 데이터에 직접 실행보다 훨씬 안전.

주의할 함정

백슬래시 이스케이프. 리터럴 '.' 일치는 '\.' 사용. JavaScript 소스 문자열에서 이는 '\\.'가 되지만 본 도구에서는 정규식 소스이므로 단순 '\.' 입력.

재앙적 백트래킹. /(a+)+/ 같은 패턴이 'aaaa…!'에 영원히 걸림. 테스트가 멈춘 것 같으면 정규식이 중첩 정량자 가질 수 있음. 단순화하거나 소유/원자 그룹 사용(JS 정규식에 안 됨; 신중한 디자인 사용).

탐욕 vs 게으름. /<.+>/는 '<a><b>'에 '<a><b>' 일치(탐욕). /<.+?>/는 '<a>' 일치(게으름). 사용 사례에 맞는 것 선택.

자주 묻는 질문

어떤 정규식 플레이버 사용?

JavaScript ECMAScript 정규식(브라우저 구현). PHP, .NET, Python에서 사용되는 PCRE와 약간 다름.

왜 lookbehind 작동 안 함?

현대 브라우저에서 작동 — Chrome, Firefox, Safari, Edge 모두 2021년부터 (?<=...)와 (?<!...) 지원. 안 되면 브라우저가 오래됨.

'u' 플래그 작동?

적절한 유니코드 처리 활성화. 🎉 같은 이모지(UTF-16에 서로게이트 쌍)는 /u/와 함께 한 문자, 기본 모드에서 두 개로 처리.

탭이나 줄 바꿈 일치?

탭에 \t, 줄 바꿈에 \n, 캐리지 리턴에 \r, 모든 공백(이 모두 포함)에 \s.

왜 본 교체 작동 안 함?

가장 자주 'g' 플래그 잊음 — 'g' 없는 교체는 첫 일치만 교체. 모두 교체에 'g' 토글.

매우 긴 텍스트 사용 가능?

네, 몇 MB까지. 그 이상은 브라우저 느려짐. 긴 입력에 재앙적 패턴(중첩 정량자) 회피.

데이터가 전송되나요?

전송되지 않습니다. 패턴과 텍스트 로컬 처리만.

정규식 치트 시트?

'JavaScript regex cheat sheet' 검색. MDN의 RegExp 페이지가 권위 있는 참조.

댓글 및 질문