유틸리티 소개

정규표현식 matchAll로 모든 매칭 결과 가져오기

JavaScript의 String.matchAll()은 모든 매칭과 캡처 그룹을 이터레이터로 반환한다.

기존 방식의 문제

match()에 g 플래그 쓰면 캡처 그룹 정보가 사라진다. exec()를 루프로 돌려야 했다.

matchAll 사용법

str.matchAll(/패턴/g) 하면 모든 매칭 정보를 다 얻을 수 있다. 정규표현식 테스터에서 패턴 검증 후 코드에 적용하자.

스프레드 연산자와 함께

[...str.matchAll(/패턴/g)] 하면 배열로 바로 변환된다. 반복문 없이 함수형으로 처리 가능. 테스터로 먼저 확인하고 코드 작성하자.

코드 리뷰 체크리스트

정규표현식을 코드 리뷰할 때 확인할 것들: 1) 특수문자 이스케이프가 제대로 됐는지, 2) 앵커(^, $)가 필요한지, 3) 탐욕적/게으른 매칭이 맞는지, 4) 테스트 케이스가 있는지. 정규표현식 테스터로 검증했는지 물어보자.

버전 관리와 변경 이력

정규표현식을 변경하면 기존에 잘 동작하던 것이 깨질 수 있다. 변경 사유와 테스트 결과를 커밋 메시지에 남기면 나중에 추적하기 좋다.

결론

정규표현식은 강력하지만 양날의 검이다. 잘 쓰면 코드가 간결해지고, 잘못 쓰면 유지보수 악몽이 된다. 테스터로 충분히 검증하고, 문서화하고, 테스트 코드를 작성하자. 그게 건강한 정규표현식 사용법이다.

복잡한 문자열 처리가 필요할 때 gimo.kr 정규표현식 테스터를 활용하면 패턴 작성과 검증이 훨씬 수월해진다. 실무에서 자주 쓰이는 패턴들을 익혀두면 생산성이 크게 올라간다.