이미 소장하고 있다면 판매해 보세요.
|
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 |
|
초보자도 이 책을 통해 정규표현식을 마스터할 수 있도록 ‘정규표현식이란 무엇인가?’라는 기본부터 시작해서 책 전반에 걸쳐 이해하기 쉽게 설명하고자 많은 노력을 기울였다. 또한, 정규표현식의 역사/구조/이론은 물론 정규표현식 처리를 위한 VM 설계 방침이나 JIT를 이용한 최적화 방법까지 다루고 있어서, 매일 정규표현식을 업무에서 사용하는 프로그래머나 정규표현식을 깊이 있게 배우고자 하는 열혈 학습자 그리고 언어 처리 관련 개발에 관심 있는 독자들도 이 책을 즐길 수 있도록 구성했다. 이론에 관심 있는 독자들을 위해 정규표현식의 수학적 배경에 대해서는 별도의 부록으로 정리했다. _xx쪽
앞에서 본 ‘[0-9]’에서 ‘[’와 ‘]’가 특별한 의미를 지니는 메타 문자이고, 0과 9가 리터럴이다. 또한 ‘?d’도 특별한 의미를 지니므로 메타 문자다. 간단하게 말하면 ‘적혀 있는 그대로(문자 그대로)’ 일치되는 것이 리터럴이고, 그 외에는 메타 문자라고 생각하면 된다. _6쪽 지금까지 정규표현식은 ‘패턴을 나타내는 것’이라고 설명했다. 이번 절에서는 단순히 패턴을 나타내는 데 그치지 않고, ‘문자열이 어떤 식으로 패턴에 일치하는가’라는 정보를 가지고 문자열을 조작하는 캡처(capture)와 치환에 대해 알아보겠다. 캡처와 치환을 사용하면 1.2절에서 소개한 모든 응용 문제를 정규표현식으로 처리할 수 있다. 프로그래머들이 정규표현식을 더 편리하게 사용할 수 있도록 추가된 기능이다. _34쪽 1장에서도 약간 다뤘지만 읽기 쉬운(수정하기 쉬운) 정규표현식, 즉 유지 관리가 용이한 정규표현식은 어떻게 작성해야 할까? 대부분의 사용자에게 있어 정규표현식의 유지 관리는 중요한 문제다. 여기서는 그런 정규표현식을 작성하기 위한 비법을 소개한다. _120쪽 이번 장에서는 정규표현식의 JIT 컴파일에 대해 상세하게 다룬다. 먼저 JIT가 무엇인지 설명하고, JIT 컴파일에 의해 어떻게 고속화가 이루어지는지 살펴본다. 또한 JIT 컴파일 방법을 설명하고, 브라우저에 탑재돼 있는 정규표현식 엔진이 어떻게 고속화되고 있는지 설명한다. _249쪽 마이힐-네로드 정리를 이해하려면, 먼저 동치 관계라는 개념을 알아야 한다. ‘같다’라는 개념은 일상생활에서도 자주 사용된다. 예를 들어 ‘이름이 같다’거나 ‘종류가 같다’, ‘좋아하는 프로그래밍 언어가 같다’ 등 주변에서만 예를 들어도 끝이 없을 정도다. 여기서 말하는 ‘같다’라는 개념은 추상화가 가능하다. _346쪽 ---본문 중에서 |
|
이 책의 특징
■ 정규표현식의 기초부터 시작해서 역사/구조/구현/이론 등 폭넓은 주제를 다룬다. ■ 자바, 파이썬, 자바스크립트, 펄, 루비 등 다양한 언어에서의 정규표현식 사용법을 다룬다. ■ 한 권의 책을 통해 정규표현식의 모든 것을 배울 수 있도록 체계적으로 기술하고 있다. ■ 각 주제에 정통한 세 명의 저자가 각자의 전문 분야를 살려 집필하였다. ■ 정규표현식을 좀 더 쉽게 작성하고 해석하는 방법뿐만 아니라 정규표현식을 자동으로 생성하는 기법도 안내한다. ■ 정규표현식을 자유자재로 다루는 데 필요한‘ 정규표현식 엔진 구조’에 대해서는 실제 코드를 사용해서 상세하게 설명하고 있다. |