이게 뭔가요?
정규식(정규 표현식)은 문자열에서 특정 패턴을 찾거나 검증하는 작은 언어입니다. 이 도구는 패턴과 플래그(g·i·m·s·u)를 입력하면 테스트 문자열에서 매칭된 부분을 실시간으로 하이라이트하고, 각 매칭의 위치와 캡처 그룹을 표로 정리해 줍니다. JavaScript 정규식 엔진을 그대로 쓰므로, 브라우저·Node 코드에 붙여넣을 때와 동일하게 동작합니다.
언제 쓰나요?
이메일·전화번호 같은 입력값 검증 규칙을 만들 때, 로그에서 원하는 줄만 뽑아낼 때, 문자열을 치환하기 전에 패턴이 의도대로 잡히는지 확인할 때 씁니다. 복잡한 패턴은 머릿속으로 추론하기 어려우니, 실제 문자열에 대고 바로 테스트하는 편이 빠릅니다.
실무에서 자주 틀리는 점
- 탐욕적(greedy) 매칭.
.*는 가능한 한 길게 잡습니다.<.*>로 태그 하나만 잡으려다 줄 전체를 삼키는 실수가 흔합니다..*?(게으른 매칭)로 좁혀야 합니다. - 점(.)은 개행을 포함하지 않음. 여러 줄에 걸쳐 매칭하려면
s(dotAll) 플래그가 필요합니다. - 이스케이프 누락.
.·?·(·[같은 특수문자를 문자 그대로 찾으려면\.처럼 백슬래시를 붙여야 합니다. g플래그와 상태. 전역 플래그가 붙은 정규식 객체는lastIndex를 유지해, 재사용 시 예상치 못한 위치부터 검색하기도 합니다.
실무에서 — HTML에서 태그 하나만 뽑으려고
<.*>를 썼다가 한 줄 전체를 통째로 잡아먹은 적이 있다.<.*?>로 게으른 매칭을 주고 나서야 해결됐다. 또 파일 경로에서 점을 찾으려고.을 그냥 썼다가 아무 문자에나 다 맞아버려서, 특수문자는\.으로 이스케이프해야 한다는 걸 다시 새겼다. 이런 건 머리로 추론하기보다 실제 문자열에 대고 테스트하는 게 훨씬 빠르다.