본문 바로가기

도서 소개

다양한 언어로 배우는 정규표현식

 

 

그동안 읽어주신 분들께 감사드립니다. 이 책은 현재 절판되었습니다.

최신 엔진 구현과 이론적 배경!

한 권으로 배우는 정규표현식의 모든 것!

 

출판사 제이펍

원출판사 기술평론사(技術評論社)

원서명 正規表現技術入門(ISBN: 9784774172705)

저자명 신야 료마, 스즈키 유스케, 타카타 켄

역자명 김완섭

출판일 2016년 2월 29일

페이지 424쪽

시리즈 (없음)

판 형 (170*225*21)

제 본 무선(soft cover)

정 가 26,000원

ISBN 979-11-85890-45-6 (93000)

키워드 정규식, 문자열, 기본3연산, 역참조, 백트랙, 유니코드, JIT, 메타 문자

분야 프로그래밍 / 기타

관련 사이트
관련 포스트
관련 시리즈
■ (없음)
관련 도서
■ (없음)
관련 파일 다운로드
■ (없음)
강의 자료
(교재로 채택하신 분들은 출판사로 메일을 보내주세요) => jeipubmarketer@gmail.com
■ 본문의 그림과 표
샘플 PDF
(차례, 옮긴이 머리말, 머리말, 집필 담당 목록, 각 언어의 공식 문서 및 정규표현식 대응 목록, 베타리더 후기, 1장 '[입문]정규표현식: 메타 문자, 구문, 엔진' 일부)
정오표 페이지
도서구매 사이트(가나다순)
도서 소개
최신 엔진 구현과 이론적 배경!
한 권으로 배우는 정규표현식의 모든 것!
문자열 패턴을 간단한 식으로 기술할 수 있는 정규표현식은 문자열 처리를 포함해서 다양한 방면에서 활용되는 편리한 도구다. 그래서 이 책은 초보자도 정규표현식을 마스터할 수 있도록 ‘정규표현식이란 무엇인가?’부터 시작해서 정규표현식의 역사/구조/이론은 물론 정규표현식 처리를 위한 VM 설계 방침이나 JIT를 이용한 최적화 방법 등 정규표현식의 모든 것을 다루고 있다.
정규표현식을 일상 업무에서 사용하는 프로그래머나 정규표현식을 깊이 있게 배우고자 하는 열혈 학습자, 그리고 언어 처리 관련 개발에 관심 있는 독자들은 이 한 권의 책을 통해 정규표현식의 모든 것을 배울 수 있을 것이다. 또한, 이론에 관심 있는 독자들을 위해서 정규표현식의 수학적 배경에 대해서는 별도의 부록으로 정리했다.
이 책의 특징
■ 정규표현식의 기초부터 시작해서 역사/구조/구현/이론 등 폭넓은 주제를 다룬다.
■ 자바, 파이썬, 자바스크립트, 펄, 루비 등 다양한 언어에서의 정규표현식 사용법을 다룬다.
■ 한 권의 책을 통해 정규표현식의 모든 것을 배울 수 있도록 체계적으로 기술하고 있다.
■ 각 주제에 정통한 세 명의 저자가 각자의 전문 분야를 살려 집필하였다.
■ 정규표현식을 좀 더 쉽게 작성하고 해석하는 방법뿐만 아니라 정규표현식을 자동으로 생성하는 기법도 안내한다.
■ 정규표현식을 자유자재로 다루는 데 필요한‘ 정규표현식 엔진 구조’에 대해서는 실제 코드를 사용해서 상세하게 설명하고 있다.
지은이 소개
신야 료마(新屋良磨)
도쿄공업 대학교에서 수리 및 계산학을 전공 중인 박사 과정 학생이다. 학부 4학년부터 정규표현식의 매력에 빠져서 연구를 시작했다. 세계에서 가장 빠른 grep 개발, 정규표현식을 사용한 문자열 압축 응용을 연구했으며, 지금은 정규 언어의 고향이라고 할 수 있는 프랑스 파리에서 정규표현식의 수리 구조를 연구하고 있다. 특히, 언어, 대수, 논리 사이의 상관관계와 정규표현식의 합리적 해석에 관심이 많다.
스즈키 유스케(鈴木勇介)
게이오키주크 대학교에서 개방환경과학을 전공 중인 박사 과정 학생이다. 자바스크립트로 프로그래밍을 시작했으며, 브라우저나 자바스크립트 엔진 자체에 관심이 많다. 사양을 엄격하게 만족하는 자바스크립트 엔진을 개발했으며, WebKit 커미터로 CSS JIT 개발, WebKit 및 JavaScriptCore 개발에 공헌했다. 현재는 GPU 가상화를 연구하고 있다. 시스템 소프트웨어나 컴파일러에 관심이 있어서 최근에는 C++에 많은 시간을 투자하고 있다.
타카타 켄(高田謙)
반도체 회사에 근무 중인 임베디드 프로그래머다. 2006년쯤에 당시 사용하고 있던 편집기에서 정규표현식의 후방 참조 기능이 없다는 것을 알았고, 오니구루마 엔진 및 BREGEXP.DLL을 사용해서 bregojing.dll을 만들기 시작했다. 이후 펄P(erl)에 ∖K 등의 새로운 정규표현식이 도입된 것을 알고 오니구무마에도 도입될 것을 기대했지만 좌절하고, 결국 2011년에 새로운 엔진인 오니그모를 만들었다. 최근에는 오니그모보다 Vim 배치(batch) 작성을 더 많이 하고 있다.
옮긴이 소개
김완섭
네덜란드 ITC에서 Geoinformation for Disaster Risk Management 석사 학위를 취득했다. 약 9년간 일본 및 한국 대기업에서 IT 및 GIS/LBS 분야 업무를 담당했으며, 일본에서는 세콤(SECOM) 계열사인 파스코(PASCO)에서 일본 외무성, 국토지리정보원과 같은 일본 정부기관을 대상으로 한 시스템 통합(SI) 업무를 담당했다. 이후 야후 재팬으로 직장을 옮겨 야후 맵 개발 담당 시니어 엔지니어로 근무했으며, 한국으로 돌아와 SK에서 내비게이션(T맵 등) 지도 데이터 담당 매니저로 근무했다. 현재는 싱가포르의 한 국제 연구기관에서 Technical Specialist로 근무 중이다. 저서로는 《나는 도쿄 롯폰기로 출근한다》가 있으며, 역서로는 《C# 코딩의 기술 기본편》,《그림으로 공부하는 IT 인프라 구조》, 《코딩을 지탱하는 기술》, 《그레이들 철저 입문》, 《클린 코드를 위한 테스트 주도 개발》 등 20여 권이 있다. 블로그를 통해 IT 번역 관련 얘기와 싱가폴 직장 생활을 소개하고 있다.

 

차례

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