정규식 테스트기
정규식 패턴과 플래그로 매치를 실시간 하이라이트하고 그룹을 봅니다.
정규식은 한 글자만 틀려도 결과가 완전히 달라집니다. 코드에 넣어 실행해 보기 전에 패턴이 의도대로 걸리는지 확인하는 편이 빠릅니다.
패턴과 검사할 문자열을 넣으면 매치된 부분이 즉시 표시되고, 각 매치의 시작 위치와 괄호로 묶은 그룹까지 함께 볼 수 있습니다.
어떻게 계산되나요
입력 방법
가운데 / / 사이 칸에는 패턴만 넣습니다(양옆 슬래시는 화면 표시용입니다). 오른쪽 작은 칸이나 아래 체크박스로 플래그를 지정하고, 아래 넓은 칸에 검사할 텍스트를 붙여 넣으면 결과가 바로 갱신됩니다.
플래그
| 플래그 | 뜻 |
|---|---|
g | 첫 매치에서 멈추지 않고 전부 찾습니다 |
i | 대소문자를 구분하지 않습니다 |
m | ^·$가 줄 단위로 동작합니다 |
s | .이 줄바꿈까지 포함합니다 |
결과 읽는 법
하이라이트 영역에 매치된 부분이 표시되고, 아래 목록에는 매치 순번, 매치된 문자열, @숫자로 표시된 시작 위치, $1 $2 형태의 캡처 그룹이 나옵니다. 매치되지 않은 선택적 그룹은 (없음)으로 표시됩니다. 패턴 문법이 잘못되면 붉은 오류 메시지로 이유를 알려 줍니다.
알아 둘 점
자바스크립트(ECMAScript) 정규식 엔진으로 동작합니다. PHP(PCRE)나 Python과는 룩비하인드, 이름 있는 그룹 표기 등 일부 문법이 달라 결과가 같지 않을 수 있습니다.
용어 정리
- 패턴
- 찾으려는 문자열의 규칙을 기호로 적은 식입니다.
- 플래그
- 전역 검색이나 대소문자 무시처럼 매칭 방식을 바꾸는 옵션 문자입니다.
- 캡처 그룹
- 괄호 `( )`로 묶은 부분. 매치에서 그 부분만 따로 꺼내 쓸 수 있고 `$1`부터 번호가 붙습니다.
- 전역(g)
- 문자열 전체에서 매치를 반복해 찾도록 하는 플래그입니다.
- 매치 위치(@)
- 매치가 시작된 글자 번호로, 0부터 셉니다.
자주 묻는 질문
슬래시와 플래그를 통째로 붙여 넣어도 되나요?
패턴 칸에는 슬래시 안쪽 내용만 넣으세요. `/\d+/g`처럼 통째로 넣으면 슬래시 문자 자체를 찾는 패턴이 되어 버립니다. 플래그는 오른쪽 칸이나 체크박스로 지정합니다.
한글도 매칭되나요?
됩니다. `[가-힣]`으로 한글 음절 범위를 지정할 수 있습니다. 다만 `\w`는 영문·숫자·밑줄만 뜻하므로 한글은 포함되지 않는 점에 주의하세요.
매치가 하나만 보입니다
`g` 플래그가 꺼져 있으면 첫 번째 매치만 찾습니다. 아래 체크박스에서 `g`를 켜면 전체가 표시됩니다.
여기서는 되는데 서버 코드에서는 안 됩니다
이 도구는 자바스크립트 정규식 규칙을 따릅니다. PHP의 `preg_match`는 패턴을 구분자로 감싸야 하고, 유니코드 처리나 룩비하인드 지원도 언어마다 달라 결과가 어긋날 수 있습니다.
입력한 문자열이 어디론가 전송되나요?
전송되지 않습니다. 매칭은 브라우저 안에서만 실행되므로, 로그처럼 민감한 텍스트를 넣어도 화면 밖으로 나가지 않습니다.
어떤 문제가 있었는지 알려주시면 빠르게 고치겠습니다. (회신이 필요하면 이메일을 남겨주세요)