Regex Live Tester와 Cheat Sheet: 정규식을 바로 테스트하기
DevBJ 안에서 바로 사용하는 Regex Live Tester의 flags, capture group, replacement preview 사용법을 정리합니다.
정규식은 짧게 쓰면 강력하지만, 조금만 복잡해져도 눈으로 검증하기 어렵습니다.
특히 이런 상황에서 실수가 자주 납니다.
g,i,mflag를 빼먹음- capture group 번호가 꼬임
- greedy match가 너무 많이 잡음
- replace 결과가 예상과 다름
- 샘플에서는 되는데 실제 로그에서는 안 됨
이런 작업을 빠르게 확인하기 위해 만든 도구가 Regex Live Tester입니다. 브라우저에서 바로 열기를 눌러 사용하거나, 아래 사용법을 먼저 읽어도 됩니다. 도구는 브라우저 안에서 동작하며 입력한 정규식과 텍스트를 서버로 전송하지 않습니다.
어떤 도구인가
이 도구는 JavaScript 정규식을 sample text에 바로 적용해 match와 capture group, 치환 미리보기를 보여줍니다.
확인할 수 있는 것은 다음과 같습니다.
- match highlight
- match table
- capture group
- named capture group
- replacement preview
- flags 설정
- regex error message
- 자주 쓰는 token cheat sheet
입력한 텍스트와 pattern은 서버로 보내지 않습니다.
기본 사용법
사용 흐름은 이렇습니다.
- pattern 입력
- 필요한 flags 선택
- sample text 입력
- highlight와 match table 확인
- replacement가 필요하면 replacement input을 채움
정규식이 잘못되면 오류 메시지가 표시됩니다.
예를 들어 괄호를 닫지 않거나 잘못된 escape를 쓰면 match 결과 대신 에러 상태를 확인할 수 있습니다.
flags 확인하기
JavaScript regex에서 flags는 결과에 큰 영향을 줍니다.
g: 전체 match 탐색i: 대소문자 무시m: multi-line 처리s: dot이 newline도 matchu: Unicode modey: sticky match
테스트할 때 flag를 하나씩 켜고 끄면 pattern 자체 문제인지 옵션 문제인지 분리하기 쉽습니다.
capture group을 볼 때
정규식은 match된 전체 문자열보다 capture group이 더 중요할 때가 많습니다.
예를 들어 로그에서 status code만 뽑고 싶거나, URL에서 path 일부만 가져오고 싶을 때입니다.
도구의 match table은 각 match에 대해 group 값을 보여줍니다.
named capture group을 쓰면 의미가 더 명확합니다.
(?<status>\d{3})
이런 식으로 이름을 붙이면 나중에 replace나 parsing 코드로 옮길 때도 읽기 쉽습니다.
replace preview
정규식은 검색보다 치환에서 더 위험해질 때가 있습니다.
pattern은 맞았는데 replacement 결과가 이상하면 실제 파일이나 데이터가 망가질 수 있습니다.
그래서 이 도구에서는 replacement preview를 먼저 확인하도록 했습니다.
실제 코드에 넣기 전에 샘플 텍스트로 결과를 보는 습관이 좋습니다.
한 줄 요약
Regex Live Tester and Cheat Sheet는 JavaScript 정규식의 match, flags, capture group, replacement 결과를 브라우저에서 즉시 확인하는 도구입니다.