Table of Contents
Table of Contents
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 8.1 정규표현식 자동 생성 308 8.2 복잡한 정규표현식의 해석 314 8.3 구문 해석의 세계: 정규표현식보다 표현력이 높은 문법 사용하기 323 Appendix 부록 _ 335 A.1 정규와 비정규의 벽: 정규표현식의 수학적 배경 336 A.2 정규성의 매력: 정규 언어의 진보된 수학적 배경 358 찾아보기 388