정규표현식에서 . * + ? 같은 특수문자를 문자 그대로 매칭하려면 이스케이프가 필요하다. 이게 헷갈리면 원하는 결과가 안 나온다.
이스케이프가 필요한 문자
. * + ? ^ $ { } [ ] ( ) | 이 문자들은 정규표현식에서 특별한 의미가 있다. 문자 그대로 찾으려면 앞에 를 붙인다. 정규표현식 테스터에서 . 을 테스트해보자.
실수하기 쉬운 케이스
파일 확장자 .txt를 찾으려고 .txt라고 쓰면 atxt, btxt 다 매칭된다. .이 아무 문자 하나를 뜻하니까. .txt라고 써야 진짜 점을 찾는다.
JavaScript에서 주의점
JavaScript 문자열에서 는 이스케이프 문자라 \로 써야 한다. .txt를 쓰려면 코드에는 \.txt로 써야 한다. 테스터에서는 그냥 .txt로 입력하면 된다.
복잡한 패턴은 단계별로
긴 정규표현식을 한 번에 작성하려고 하면 실수하기 쉽다. 작은 부분부터 테스트하면서 점점 확장해나가는 게 좋다. 정규표현식 테스터에서 부분 패턴을 먼저 검증하고 합치자.
문서화의 중요성
복잡한 정규표현식은 나중에 보면 이해가 안 된다. 주석을 달거나 패턴이 무엇을 하는지 설명을 남겨두자. 특히 팀 프로젝트에서는 다른 사람도 이해할 수 있게 해야 한다.
성능 고려하기
정규표현식이 느릴 수 있다. 특히 백트래킹이 많은 패턴은 주의해야 한다. 가능한 구체적인 패턴을 쓰고, 너무 복잡해지면 다른 방법을 고려하자. 테스터로 다양한 입력에 대해 테스트해보자.
정규표현식 테스터를 적극 활용해서 다양한 패턴을 실험해보자. 실전 경험이 쌓일수록 정규표현식 작성이 수월해진다.