샌드박스 없이 정규식 쓰지 마
만만치 않은 정규식을 코드에 바로 넣는 건 SQL REPL 없이 쿼리를 디버깅하는 것과 같아. 할 수는 있지만 굳이 고생할 이유가 없어.
좋은 습관은 단순해. 테스터에서 패턴을 만들고, 동작을 확인한 뒤 코드에 붙여 넣어.
알아둘 만한 테스터
regex101.com. 사실상 표준이야. PCRE2, Python, JavaScript, Go 중 엔진 방언을 고르고 패턴과 테스트 문자열을 붙여 넣으면 실시간 강조, 이름 붙은 그룹 분해, 단계별 설명을 볼 수 있어. 무료고 기본 기능에는 로그인도 필요 없어.
regexr.com. 화면은 더 친근하고 설명은 조금 가벼워. 빠르게 확인하기 좋아.
debuggex.com. 패턴을 철도 노선처럼 시각화해. 4강의 상태 기계를 눈으로 보고 싶거나 복잡한 패턴을 *이해*하려 할 때 유용해.
도구 안에서 바로 확인하기
터미널에서 작업한다면 다음 세 가지면 충분해.
rg --debug 'PAT' file— ripgrep이 패턴과 검색을 어떻게 구성하는지 디버그 로그로 확인해.- Python REPL의
import re; re.findall(r'PAT', text)— Python이 주력이라면 가장 빠른 샌드박스야. echo "input" | grep -E 'PAT'— POSIX ERE 동작만 빠르게 확인해.
패턴은 조금씩 키워
완벽한 80자 패턴을 한 번에 쓰려고 하지 마. 예시 하나에 맞는 가장 단순한 버전부터 시작해. 조건을 하나 추가하고 테스트한 다음, 경계 사례를 하나 추가하고 다시 테스트해. 패턴은 완성된 청사진이 아니라 씨앗에서 자라.