문자열 패턴을 간단한 식으로 기술할 수 있는 정규표현식은 문자열 처리를 포함해서 다양한 방면에서 활용되는 편리한 도구다. 그래서 이 책은 초보자도 정규표현식을 마스터할 수 있도록 ‘정규표현식이란 무엇인가?’부터 시작해서 정규표현식의 역사/구조/이론은 물론 정규표현식 처리를 위한 VM 설계 방침이나 JIT를 이용한 최적화 방법 등 정규표현식의 모든 것을 다루고 있다.
정규표현식을 일상 업무에서 사용하는 프로그래머나 정규표현식을 깊이 있게 배우고자 하는 열혈 학습자, 그리고 언어 처리 관련 개발에 관심 있는 독자들은 이 한 권의 책을 통해 정규표현식의 모든 것을 배울 수 있을 것이다. 또한, 이론에 관심 있는 독자들을 위해서 정규표현식의 수학적 배경에 대해서는 별도의 부록으로 정리했다.
Chapter 1 [입문] 정규표현식: 메타 문자, 구문, 엔진 _ 1
1.1 정규표현식의 기본 3
1.2 문자열과 문자열 처리 8
1.3 정규표현식의 기본 3연산: 접합, 선택, 반복 16
1.4 정규표현식의 신택스 슈가 25
1.5 캡처와 치환: 정규표현식으로 문자열을 조작한다 34
1.6 정규표현식의 확장 기능: 전방 탐색/재귀/역참조 55
1.7 정규표현식 엔진의 기본 65
Chapter 2 정규표현식의 역사: 이론과 적용 관점을 모두 아우르는 _ 71
2.1 정규표현식의 기원: ‘계산’의 정형화 73
2.2 클레이니에 의한 통일 76
2.3 [적용편] 프로그래머의 친구 80
2.4 프로그래밍 언어와 정규표현식의 만남 86
2.5 최근의 정규표현식 엔진 현황 88
Chapter 3 프로그래머를 위한 고급 정규표현식: 단순한 정규표현식과 최신 엔진의 구조 비교 _ 97
3.1 단순한 정규표현식과 정규 언어 99
3.2 현대 정규표현식의 다양한 기능/구문/구현 111
3.3 읽기 쉬운 정규표현식 작성 120
3.4 현실적으로 타협하기 123
Chapter 4 DFA형 엔진: 유한 오토마타와 결정성 _ 129
4.1 정규표현식과 유한 오토마타 131
4.2 오토마타 구현 142
4.3 [구현 기술] On-the-Fly 구성법 154
4.4 DFA의 장점: 최소화와 동일성 판정 162
Chapter 5 VM형 엔진: 핵심은 ‘백트랙’ _ 167
5.1 기본적인 VM형 엔진 구현 169
5.2 실용적인 VM 구현 177
5.3 오니그모의 VM 구현 190
5.4 VM 이 외 부분 구현 211
5.6 정리 244
Chapter 6 정규표현식 엔진의 3대 기술 동향: JIT 컴파일, 고정 문자열 탐색, 비트 병렬 _ 245
6.1 JIT 컴파일: 자바스크립트와 정규표현식 엔진의 고속화 247
6.2 고정 문자열 탐색을 이용한 고속화 257
6.3 비트 병렬 기법을 이용한 일치 266
Chapter 7 정규표현식의 함정: 백트랙 증가, 일치 동작의 차이 _ 275
7.1 백트랙 증가에 의한 성능 저하와 해결책 276
7.2 일치에 대한 고찰 289
7.3 각기 다른 정규표현식 엔진 간의 동작 차이 296
Chapter 8 정규표현식을 넘어서: 작성하지 않기, 해석하기, 적합하지 않은 구문 알기_ 307