이미 소장하고 있다면 판매해 보세요.
|
__옮긴이의 글
__서문 CHAPTER 1 정규표현식이란? __1 RegexPal로 시작하기 __2 북미 전화번호 찾기 __3 문자 클래스로 숫자 찾기 __4 단축 문자 사용하기 __5 임의의 문자 찾기 __6 그룹 참조와 역참조 __7 수량자 사용하기 __8 상수 표시하기 __9 예제 풀어보기 __9-1 TextMate __9-2 Notepad++ __9-3 Oxygen __10 정리 __10-1 1장에서 배운 내용 __10-2 기술 노트 CHAPTER 2 기본 패턴 찾기 __1 문자열 상수 찾기 __2 숫자 찾기 __3 숫자가 아닌 문자 찾기 __4 \w로 문자 찾기 __5 공백 찾기 __6 한 번 더 임의의 문자 찾기 __7 텍스트에 마크업 추가하기 __7-1 sed를 사용하여 마크업 추가하기 __7-2 Perl을 사용하여 마크업 추가하기 __8 정리 __8-1 2장에서 배운 내용 __8-2 기술 노트 CHAPTER 3 경계 __1 행의 시작과 끝 __2 단어의 경계 __3 그 밖의 앵커 __4 문자열을 상수로 지정하기 __5 태그 추가하기 __5-1 sed로 태그 추가하기 __5-2 Perl로 태그 추가하기 __6 정리 __6-1 3장에서 배운 내용 __6-2 기술 노트 CHAPTER 4 선택, 그룹, 역참조 __1 선택 __2 서브패턴 __3 그룹 참조와 역참조 __3-1 그룹 이름 지정 __4 비참조 그룹 __4-1 원자 그룹 __5 정리 __5-1 4장에서 배운 내용 __5-2 기술 노트 CHAPTER 5 문자 클래스 __1 부정 문자 클래스 __2 합집합과 차집합 __3 POSIX 문자 클래스 __4 정리 __4-1 5장에서 배운 내용 __4-2 기술 노트 CHAPTER 6 유니코드와 기타 문자 __1 유니코드 문자 찾기 __1-1 vim 사용하기 __2 8진수로 문자 찾기 __3 유니코드 문자 속성 찾기 __4 제어 문자 찾기 __5 정리 __5-1 6장에서 배운 내용 __5-2 기술 노트 CHAPTER 7 수량자 __1 욕심 많고, 게으르고, 독점적인 수량자 __2 *, +, ? 사용하기 __3 횟수를 정해서 찾기 __4 게으른 수량자 __5 독점적인 수량자 __6 정리 __6-1 7장에서 배운 내용 __6-2 기술 노트 CHAPTER 8 탐색 __1 긍정형 전방 탐색 __2 부정형 전방 탐색 __3 긍정형 후방 탐색 __4 부정형 후방 탐색 __5-1 8장에서 배운 내용 CHAPTER 9 HTML 마크업 추가하기 __1 태그 찾기 __2 sed로 텍스트 바꾸기 __2-1 sed로 대체하기 __2-2 sed로 로마 숫자 처리하기 __2-3 sed로 문단 처리하기 __2-4 sed로 시의 행 처리하기 __3 태그 추가하기 __3-1 sed로 명령어 파일 사용하기 __4 Perl로 텍스트 바꾸기 __4-1 Perl로 로마 숫자 처리하기 __4-2 Perl로 문단 처리하기 __4-3 Perl로 시의 행 처리하기 __4-4 Perl로 명령어 파일 사용하기 __5-1 9장에서 배운 내용 CHAPTER 10 시작의 끝 __1 배움은 끝이 없다 __2 유용한 프로그램과 라이브러리 __2-1 Perl __2-2 PCRE __2-3 루비에서 사용하는 오니구루마 __2-4 파이썬 __2-5 RE2 __3 북미 전화번호 찾기 __4 이메일 주소 찾기 __5-1 10장에서 배운 내용 APPENDIX A 정규표현식 참조 정보 __1 QED의 정규표현식 __2 메타 문자 __3 단축 문자 __4 공백 문자 __5 유니코드 공백 문자 __6 제어 문자 __7 문자 속성 __8 문자 속성에 대한 스크립트 이름 __9 POSIX 문자 클래스 __10 옵션/변경자 __11 ASCII 코드표와 정규표현식 __12 기술 노트 APPENDIX B 정규표현식 용어집 APPENDIX C 자주 쓰는 정규표현식 |
|
__ 마이클 피츠제럴드
이 책은 예제를 적극 활용해서 정규표현식을 설명한다. 이는 정규표현식을 가능한 쉽게 익히도록 하기 위함이다. 정규표현식에 대한 개념도 예제를 통해 설명하기 때문에, 직접 따라 해보면서 쉽게 이해할 수 있을 것이다. 정규표현식이란 텍스트에서 원하는 패턴을 찾는 도구다. 좀 더 정확하게 말하면 문서나 파일에 나오는 문자열의 집합에서 원하는 패턴을 찾기 위해 특별히 인코딩한 문자열이 바로 정규표현식이다. 정규표현식의 개념은 이미 1940년대 초에 나왔지만, 1952년 수학자 스테판 클리니가 집필한 『Introduction to Metamathematics』(뉴욕, 반 노스트랜드)의 초판이 발행되면서 부각되기 시작했다. 그리고 1970년대 초, 유닉스 운영체제(브라이언 커니건, 데니스 리치, 켄 톰슨, AT&T 벨 연구소의 사람들이 만듦)와 sed, grep 같은 유닉스 유틸리티의 출현과 더불어 컴퓨터 공학자들에게 광범위하게 퍼지게 되었다. 정규표현식은 컴퓨터 애플리케이션에도 등장하기 시작했는데, QED 문서 편집기가 그 중 한 예다. QED는 Quick Editor의 약자로 Scientific Data Systems SDS 940에서 실행되는 버클리 시분할 시스템을 위해 개발되었다. 이 문서 편집기는 1970년에 켄 톰슨이 MIT의 호환 시분할 시스템의 편집기를 수정해서 만든 것으로, 컴퓨팅 분야에 정규표현식을 적용한 초창기 시도 중 하나다(부록의 [표 A-1]의 QED의 정규표현식 참고). 이 책에서는 다양한 프로그램을 사용하여 예제를 풀어보기 때문에, 각 프로그램이 얼마나 쓸모 있고 유용한지를 자연스럽게 배울 수 있다. 그 중 어떤 프로그램은 여러분의 윈도우 시스템에서 쉽게 구할 수 없다는 이유로 유용하지 않다고 속단할 수도 있다. 물론 여러분이 불필요하다고 생각하거나 관심이 가지 않는다면 사용하지 않아도 상관없다. 하지만 컴퓨팅 업계에서 제대로 경력을 쌓고 싶다면 유닉스 기반 환경에서 정규표현식을 배우라고 권하고 싶다. 나는 25년 동안 유닉스 환경에서 일을 해왔지만 아직도 매일 새로운 것을 배우고 있다. “유닉스를 이해하지 못하는 사람은 유닉스를 다시 발명할 운명에 처할 것이다” ? 헨리 스펜서 이 책에서 선보일 몇 가지 프로그램은 웹 브라우저에서 실행할 수 있기 때문에 대부분의 독자가 쉽게 사용할 수 있을 것이다. 그 밖의 몇몇 프로그램은 명령어나 셸 프롬프트에서, 그리고 한두 가지는 데스크톱에서 실행해야 한다. 만약 해당 프로그램을 가지고 있지 않다면 내려받기를 권한다. 대부분 무료이거나 아주 저렴하다. 이 책은 전문 용어를 많이 쓰지 않는다. 필요하다면 올바른 용어가 무엇인지 설명하지만 그렇게 많지 않다. 전문 용어가 오히려 학습에 장애물이 될 수 있다는 점을 깨달은 다음부터 이렇게 해왔다. 다시 말해서 정규표현식을 딱딱한 언어로 설명해서 독자들이 당황하는 일이 없도록 노력할 것이다. 정규표현식은 수없이 많은 부분에서 사용된다. 가장 쉽게 찾을 수 있는 곳은 vi(vim), grep, sed 등과 같은 유닉스 명령행 도구다. 또한 Perl(당연히), 자바, 자바스크립트, C#, 루비 등 수많은 프로그래밍 언어에서도 정규표현식이 사용되며, XSLT 2.0 같은 선언형 언어에서도 볼 수 있다. 각 경우에서 유사점과 차이점이 있다. 이 책에서 모든 내용을 다루지는 못하지만 중요한 부분에 대해서는 짚고 넘어갈 것이다. 모든 경우에 대한 차이점을 다 설명하다가는 병원 신세를 져야 할지도 모른다. 이 책에 그런 부분을 자세히 설명하느라 지면을 낭비하지 않았다. 그러니 책 제목처럼 입문서를 기대하고 있다면 제대로 고른 것이다. ---「저자 서문」 중에서 캘리포니아 산라몬에서 이수진, 이성희 정규표현식은 HTML5나 모바일 프로그래밍 같이 요즘 인기 있는 신기술이 아니다. 심지어 1970년대에 등장한 오래된 기술이다. 그런데 아직도 배워야 할까? 그렇다. 업이 컴퓨터와 관련 있는 사람이라면 누구나 배워야 한다. 특히 유닉스나 리눅스 시스템을 다루는 사람이라면 더더욱 잘 알아야 한다. 왜 그럴까? 시스템 관리나 프로그래밍 업무에는 텍스트를 처리해야 하는 경우가 엄청나게 많은데, 정규표현식은 이를 위한 최고의 도구이기 때문이다. 정규표현식을 처음 접하면 너무 생소해서 어렵게만 느껴진다. 무슨 암호 같아서 이해가 가질 않는다. 그런데 노련한 베테랑 개발자나 시스템 관리자들이 정규표현식을 자유자재로 쓰면서 눈 깜짝할 사이에 많은 일을 하는 것을 보면 부럽지 않은가? 여러분도 그렇게 할 수 있다. 이 책이 정규표현식을 시작하려는 여러분에게 좋은 길라잡이가 될 것이다. 이 책은 정규표현식을 처음 배우는 독자를 위한 입문서다. 개념부터 설명하지 않고 이해하기 쉽도록 예제부터 보여준다는 점이 이 책의 가장 큰 특징이다. 가장 많이 사용되는 정규표현식을 예로 들고, 거기에 나온 정규표현식을 하나씩 설명해 가는 방식이다. 따라서 이해하기 쉽고 재미있다. 이 책의 내용을 모두 익히고 나면 정규표현식이 더 이상 낯설지 않을 것이다. 거기에 만족하지 말고 저자가 소개하는 다음 단계의 책을 읽고 정규표현식의 고수가 되기 바란다. 마지막으로 조희진 씨를 비롯한 한빛미디어 담당자 분들과 베타리더 서준우 씨에게 감사드린다. 그리고 번역 기간 내내 잘 참고 도와준 재원, 재우에게 고맙고 사랑한다는 말을 전하고 싶다. ---「옮긴이 서문」 중에서 |
|
정규표현식은 고급 프로그래머라면 반드시 알아야 할 기법으로써 Perl, 자바, 자바스크립트, C# 같은 프로그래밍 언어는 물론 다양한 유닉스 유틸리티에서도 광범위하게 사용된다. 이 책을 읽고 나면 유용한 정규표현식 구문에 익숙해질 뿐 아니라, 생각보다 훨씬 많은 시간을 절약하게 될 것이다.
이 책은 예제를 실습한 다음 차근차근 개념을 설명하고 있기 때문에 정규표현식을 처음 배우는 개발자에게 안성맞춤이다. 원하는 패턴의 문자열을 찾고 변경하는 다양한 예제를 풀어보면서 단계별로 탄탄한 기본 지식을 쌓도록 하자. . 어떤 독자를 위한 책인가? -. 정규표현식을 한 번도 사용해보지 않은 개발자 -. 정규표현식의 기본을 배우고 싶은 개발자 |