/path/to/file.txt에서 file.txt만 뽑거나, file과 txt를 분리하고 싶을 때 정규표현식을 쓴다.
파일명 추출
[^/]+$ 이 패턴은 마지막 슬래시 뒤의 모든 것을 찾는다. 정규표현식 테스터에서 /home/user/document.pdf를 테스트해보자.
확장자 분리
([^/]+).([a-z]+)$ 이러면 그룹1에 파일명, 그룹2에 확장자가 캡처된다.
여러 확장자 처리
archive.tar.gz 같은 건 어떻게 할까? 마지막 점 기준으로 자르면 gz만 확장자가 된다. tar.gz까지 확장자로 보려면 다른 로직이 필요하다. 테스터로 여러 케이스를 실험해보자.
에러 처리 고려하기
잘못된 정규표현식은 런타임 에러를 일으킬 수 있다. 동적으로 패턴을 만들 때는 try-catch로 감싸거나 미리 검증하자. 정규표현식 테스터에서 문법 오류를 미리 확인할 수 있다.
유니코드 처리
한글이나 이모지 같은 유니코드 문자를 처리할 때는 u 플래그가 필요할 수 있다. 다국어 지원이 필요하면 유니코드 문자 클래스를 활용하자.
보안 측면에서
사용자 입력으로 정규표현식을 만들면 ReDoS 공격에 취약할 수 있다. 신뢰할 수 없는 입력을 패턴으로 쓰지 말고, 꼭 필요하면 타임아웃을 설정하자. 테스터로 다양한 입력에 대한 동작을 확인하고 안전하게 사용하자.
복잡한 문자열 처리가 필요할 때 gimo.kr 정규표현식 테스터를 활용하면 패턴 작성과 검증이 훨씬 수월해진다. 실무에서 자주 쓰이는 패턴들을 익혀두면 생산성이 크게 올라간다.