엔진의 차이
정규식은 엔진별로 미묘한 차이가 있다.
JavaScript
ECMAScript 표준. lookbehind는 비교적 최근에 추가되었다.
Python
re 모듈. 추가로 regex 패키지가 더 풍부한 기능을 제공한다.
Java
java.util.regex. 다른 엔진과 일부 차이가 있다.
PCRE
Perl 호환 정규식. 가장 표현력이 풍부하다. 정규식 테스터에서 PCRE 모드 선택 가능.
POSIX
유닉스 도구에서 사용. 단순하지만 엄격하다.
차이 정리
- 플래그 표기법
- 특수 시퀀스 지원
- 그룹 명명 방식
- 유니코드 처리
실무 영향
같은 패턴이 엔진마다 결과가 다를 수 있다. 사전 검증이 필요하다.
분석의 가치
정규식 테스터로 대상 엔진에 맞춰 검증한다.
이식성
여러 환경에서 동작해야 한다면 가장 보수적인 문법을 사용한다.
마무리
엔진을 알면 패턴 작성의 정확도가 올라간다.