abc를 cba로 바꾸는 걸 정규표현식만으로 할 수 있을까? 결론부터 말하면 어렵다.
정규표현식의 한계
정규표현식은 패턴 매칭 도구다. 문자열 변환은 치환으로 하는 건데, 임의 길이 문자열 뒤집기는 정규표현식으로 표현할 수 없다.
고정 길이면 가능
(.)(.)(.) 로 캡처해서 321 로 치환하면 3글자는 뒤집을 수 있다. 하지만 길이가 가변이면 불가능. 정규표현식 테스터에서 3글자 뒤집기를 해보자.
올바른 도구 선택
문자열 뒤집기는 그냥 코드로 하자. split reverse join 조합이면 된다. 정규표현식은 만능이 아니다. 테스터는 패턴 매칭에 쓰자.
코드 리뷰 체크리스트
정규표현식을 코드 리뷰할 때 확인할 것들: 1) 특수문자 이스케이프가 제대로 됐는지, 2) 앵커(^, $)가 필요한지, 3) 탐욕적/게으른 매칭이 맞는지, 4) 테스트 케이스가 있는지. 정규표현식 테스터로 검증했는지 물어보자.
버전 관리와 변경 이력
정규표현식을 변경하면 기존에 잘 동작하던 것이 깨질 수 있다. 변경 사유와 테스트 결과를 커밋 메시지에 남기면 나중에 추적하기 좋다.
결론
정규표현식은 강력하지만 양날의 검이다. 잘 쓰면 코드가 간결해지고, 잘못 쓰면 유지보수 악몽이 된다. 테스터로 충분히 검증하고, 문서화하고, 테스트 코드를 작성하자. 그게 건강한 정규표현식 사용법이다.
정규표현식 테스터를 적극 활용해서 다양한 패턴을 실험해보자. 실전 경험이 쌓일수록 정규표현식 작성이 수월해진다.