사용 방법
- 정규식 패턴에 슬래시(
/) 없이 패턴만 입력합니다. 아래에/패턴/플래그형태로 실제 정규식이 표시됩니다. - 필요한 플래그를 켭니다. 모든 일치를 찾으려면
g가 있어야 합니다. - 테스트할 텍스트에서 일치하는 부분이 강조되고, 아래 표에 위치와 캡처 그룹(
$1,$<이름>)이 나옵니다. - 치환 문자열을 넣으면
String.prototype.replace결과를 미리 볼 수 있습니다.
플래그 정리
이 도구는 브라우저의 자바스크립트 정규식 엔진(ECMAScript)을 그대로 씁니다.
| 플래그 | 의미 | 예 |
|---|---|---|
g |
전체 찾기 — 없으면 첫 일치만 | /\d+/g → a1b22에서 1, 22 |
i |
대소문자 무시 | /abc/i → ABC 일치 |
m |
^ $가 줄마다 시작·끝에 일치 |
줄 단위 검사 |
s |
.이 줄바꿈까지 포함 |
/a.b/s → a(줄바꿈)b |
u |
유니코드 모드 — 이모지를 한 글자로, \p{Script=Hangul} 사용 가능 |
/./u → 😀 한 번 |
y |
마지막 일치 바로 다음 위치에서만 찾기 (sticky) | 토크나이저 |
d |
그룹별 시작·끝 위치(indices) 제공 |
표에 [시작–끝] 표시 |
실제 예시
| 하고 싶은 것 | 패턴 | 치환 |
|---|---|---|
| 날짜 형식 바꾸기 | (?<y>\d{4})-(?<m>\d{2})-(?<d>\d{2}) |
$<y>년 $<m>월 $<d>일 |
| 휴대폰 번호 가리기 | (01[016789])-?(\d{3,4})-?(\d{4}) |
$1-****-$3 |
| 한글만 찾기 | [가-힣]+ (플래그 g) |
— |
| 앞뒤 공백 지우기 | ^\s+|\s+$ (플래그 gm) |
빈 문자열 |
[가-힣]은 완성형 한글 11,172자만 포함하고 ㄱ, ㅏ 같은 낱자모는 빠집니다. 자모까지 찾으려면 u 플래그와 \p{Script=Hangul}을 쓰세요.
주의할 점
- 폭주 패턴(catastrophic backtracking):
(a+)+$처럼 반복 안에 반복이 있으면, 일치에 실패할 때 시도할 경우의 수가 기하급수적으로 늘어 브라우저가 멈출 수 있습니다. 이 도구는 별도 스레드(Web Worker)에서 검사하고 1초가 넘으면 강제로 중단합니다. 서버 코드에 이런 패턴이 있으면 ReDoS 공격에 취약하니 고쳐야 합니다. - 너무 큰 입력은 앞 100,000자만 검사하고, 일치는 최대 1,000개까지 표시합니다.
- 다른 언어(PCRE·파이썬·자바)의 정규식과 문법이 조금 다릅니다. 예를 들어 자바스크립트는
(?i)같은 인라인 플래그를 패턴 맨 앞에 쓸 수 없고, 이름 그룹은(?<name>...)로 씁니다.
자주 묻는 질문
입력한 텍스트가 서버로 가나요?
아니요. 정규식 실행은 이 브라우저의 워커 안에서 이뤄지며 네트워크 요청이 없습니다. 로그나 고객 데이터로 패턴을 시험해도 안전합니다.
결과를 다른 텍스트와 비교하고 싶어요.
치환 결과를 복사해 텍스트 비교에 원문과 함께 넣으면 바뀐 부분이 줄 단위로 표시됩니다. 줄 중복 정리가 목적이라면 중복 줄 제거가 더 간단합니다.