메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

한 권으로 끝내는 정규표현식

한빛미디어

번역서

절판

  • 저자 : 잰 고이바에르츠 , 스티븐 리바이선
  • 번역 : 김지원
  • 출간 : 2010-09-17
  • 페이지 : 608 쪽
  • ISBN : 9788979147742
  • 물류코드 :1774
  • 초급 초중급 중급 중고급 고급
4.4점 (5명)
좋아요 : 26

정규표현식의 대가 공동 집필!

정규표현식은 오늘날 사용되지 않는 곳이 없다. 정규표현식을 사용하면, 며칠씩 걸리는 프로그램 개발 혹은 타사 라이브러리를 도입하기 위한 사전 검토와 관리 승인에 필요한 시간을 절약할 수 있다. 지금 정규표현식 분야의 세계적 양대 산맥인 잰 고이바에르츠와 스티븐 리바이선이 정규표현식을 체계적으로 정리했다.

여덟 가지 프로그래밍 언어를 아우르는 정규표현식 최고의 해설서!

프로그래머라면 누구나 정규표현식의 용도를 쉽게 알 수 있지만, 정규표현식을 만드는 작업이 쉽지만은 않다. 노련한 사용자조차 저조한 성능, 기대와는 다른 결과, 골치 아픈 버그 등에 시달리기 일쑤다. 또한 각 언어별로 그 표현식도 달라 어려움이 더욱 가중된다. 이 책은 정규표현식이 필요한 대표적인 작업들을 선정하여 C#, Java, Javascript, Perl, PHP, Python, Ruby, VB.NET 여덟 가지 언어별로 해결 방법을 제시한다. 이 책을 펼쳐보자! 어떤 언어든, 어떠한 궁금한 사항이든 해답을 찾을 수 있을 것이다.

이 책의 내용

  • 간단하고 명료한 예제 설명을 통한 정규표현식의 기본 이해
  • 정규표현식을 각종 프로그래밍 언어와 스크립트에 사용하는 방법
  • 입력물의 유효성 검사와 형식 변경
  • 단어, 행, 특수문자, 숫자 값 처리
  • URL, 경로, 마크업, 데이터 상호변환에 정규표현식 적용
  • 고급 정규표현식 기능들의 미묘한 차이 이해
  • 언어별 정규표현식 API, 문법 스타일, 동작 차이 이해
  • 사용자에 최적화된 정규표현식 작성
  • 대한민국 주민등록번호 정규표현식

이 책을 학습하자! 그 누구라도 정규표현식을 자유자재로 사용하게 될 것이다. 강력한 새 기법을 익히고, 언어별 문제점을 파악하자! 난관에 부딪혔을 때 이 책에 수록된 방대한 분량의 검증된 자료를 찾아보면 여러분의 귀중한 시간을 절약할 수 있게 된다.

추천사

정규표현식에 관한 모든 정보를 충분히 조사하여 집대성한 완성도 높은 책이다. 나는 1장만 읽고도 새로운 여러 기법을 알게 되었다.
- 니콜라이 린드버그, STTS 스피치 테크놀러지 서비시스, 컴퓨터 언어과장

이 책은 순간적으로 부딪히는 문제들을 명쾌하게 해결해준다. 한마디로 말해서 나는 각 절에 설명된 상세한 내용에 충격을 받고 빠져들었다.
- 자크 그린트, 오픈소스 기술 지지자 & 전략가, FOO Associates 소장

잰 고이바에르츠 저자

잰 고이바에르츠

Just Great Software라는 기업을 운영하며, 이곳에서 그는 제일 대중적으로 사용되는 정규표현식 소프트웨어 몇 가지를 설계하고 개발해 왔다. 대표적인 제품으로는 15종 정규표현식 스타일의 특징을 완벽히 모사하는 세계 유일의 정규표현식 편집기 RegexBuddy와, 가장 다채로운 기능의 마이크로소프트 윈도우용 grep 툴인 PowerGREP이 있다.

스티븐 리바이선 저자

스티븐 리바이선

선도적인 JavaScript 정규표현식 전문가로, 정규표현식을 주로 다루는 인기 블로그 http://blog.stevenlevithan.com을 운영 중이다. 스티븐은 지난 몇 년간 정규표현식 스타일과 도서관 조경에 관한 견문을 넓히는 취미생활을 영위해왔다.

김지원 역자

김지원

여가 시간에는 플래시 아이템 제작, 컴퓨터 음악 작곡 등을 하며, 때로는 구성이 잘 된 웹디자이너들의 사이트를 탐색하면서 아이디어를 구상하기도 한다. 뜨거운 감자인 웹 표준에 관해서도 큰 관심을 갖고 있으며, 이와 관련해서 유용한 보충 자료를 수집해 블로그를 통해 제공할 예정이다. 최근 우리말 번역에 있어서 기술 용어의 일관성에 대해 고민하고 있다. 건국대학교 신소재공학과를 졸업한 후, 기술문서, 매뉴얼 등을 위주로 번역해왔으며 유비쿼터스 IT 관련 논문들의 번역 작업에 참여했다. 2004년부터 현재까지 정보기술, 건축, 화학, 디자인, 사운드 등의 분야에서 프리랜서 번역가로 활동 중이다.

		목차저자서문1장. 정규표현식 소개   1.1 정규표현식이란?   1.2 정규표현식을 이용한 검색치환   1.3 정규표현식 작성 툴2장. 정규표현식 기본 기술   2.1 리터럴 텍스트 대조   2.2 비인쇄 문자 대조   2.3 여러 문자 중 하나 대조   2.4 모든 문자와 일치   2.5 행 처음이나 끝의 대상을 대조   2.6 단어 채로 대조   2.7 유니코드 번호, 속성, 블록, 스크립트   2.8 다자택일 대조   2.9 여러 일치부를 그룹으로 묶어 캡처   2.10 앞서 일치된 텍스트를 다시 대조   2.11 각 일치부를 캡처하고 명명하기   2.12 정규식의 일부분을 특정 횟수 반복하기   2.13 최소 반복 vs 최대 반복   2.14 불필요한 역행 제거   2.15 지나친 반복을 방지   2.16 한 일치부를 전체 대조부에 넣지 않고 검사   2.17 조건문으로 두 후보 중 하나 대조   2.18 정규식에 주석 추가   2.19 치환 텍스트에 리터럴 텍스트 삽입   2.20 치환 텍스트에 정규식 일치부 삽입   2.21 치환 텍스트에 정규식 일치부의 일부만 삽입   2.22 치환 텍스에 일치 콘텍스트 삽입3장. 프로그래밍을 위한 정규표현식   3.1 프로그래밍 언어와 정규식 스타일   3.2 소스코드 안의 리터럴 정규식   3.3 정규식 라이브러리 불러오기   3.4 정규식 객체 생성   3.5 정규식 옵션 지정   3.6 대상 문자열과 일치되는지 검사   3.7 대상 문자열과 완전히 일치되는지 검사   3.8 일치 텍스트 가져오기   3.9 일치부 지점과 길이 알아내기   3.10 일치 텍스트의 일부분 가져오기   3.11 모든 일치부 가져오기   3.12 모든 일치부 반복   3.13 절차 코드 안의 일치부 유효검사   3.14 일치부를 다른 일치부 안에서 검색   3.15 모든 일치부 치환   3.16 일부분을 재사용해서 일치부 치환   3.17 일치부를 코드 안에 생성된 텍스트로 치환   3.18 모든 일치부를 다른 정규식의 일치부로 치환   3.19 모든 일치부를 다른 정규식 일치부들 사이 일치부로 치환   3.20 문자열 분리   3.21 정규식 일치부만 남기고 문자열 분리   3.22 행 단위 검색4장. 유효검사와 형식화   4.1 이메일 주소   4.2 북미 전화번호 유효검사와 형식화   4.3 국제 전화번호   4.4 구식 날짜   4.5 구식 날짜 정밀검사   4.6 구식 시간   4.7 ISO 8601 날짜와 시간   4.8 사용자 입력을 영수 문자로 제한   4.9 텍스트 길이 제한   4.10 텍스트 안의 행 수 제한   4.11 긍정 응답 검사   4.12 미국 사회보장번호   4.13 한국 주민등록번호 (추가집필)   4.14 ISBN   4.15 미국 우편번호   4.16 캐나다 우편번호   4.17 영국 우편번호   4.18 사서함 주소 검색   4.19 '이름 성'을 '성, 이름'으로 형식변환   4.20 신용카드 번호   4.21 유럽 사업자등록번호5장. 단어, 행, 특수문자   5.1 특정 단어 검색   5.2 여러 단어 중 하나 검색   5.3 비슷한 단어 검색   5.4 특정 단어를 제외한 모든 단어 검색   5.5 뒤에 특정 단어가 없는 단어 검색   5.6 앞에 특정 단어가 없는 단어 검색   5.7 근접 단어 검색   5.8 중복 단어 검색   5.9 중복 행 제거   5.10 특정 단어가 있는 완전한 행 대조   5.11 특정 단어가 없는 완전한 행 대조   5.12 문자열의 시작과 끝 공백 제거   5.13 연이은 공백을 빈칸 한 개로 치환   5.14 정규식 메타문자 이스케이프 처리6장. 숫자   6.1 정수   6.2 16진수   6.3 2진수   6.4 리딩 제로 제거   6.5 특정 범위 내의 정수   6.6 특정 범위 내의 16진수   6.7 부동소수점 수   6.8 천 단위 구분기호가 있는 숫자   6.9 로마 숫자7장. URL, 경로, 인터넷 주소   7.1 URL 유효검사   7.2 전체 텍스트에서 URL 검색   7.3 전체 텍스트에서 따옴표로 묶인 URL 검색   7.4 전체 텍스트에서 괄호가 섞인 URL 검색   7.5 URL을 링크로 변환   7.6 URN 유효검사   7.7 일반 URL 유효검사   7.8 URL에서 스키마 추출   7.9 URL에서 사용자명 추출   7.10 URL에서 호스트 추출   7.11 URL에서 포트 추출   7.12 URL에서 경로 추출   7.13 URL에서 질의 추출   7.14 URL에서 단편 추출   7.15 도메인명 유효검사   7.16 IPv4 주소 대조   7.17 IPv6 주소 대조   7.18 윈도우 경로 유효검사   7.19 윈도우 경로의 각 부분을 분리   7.20 윈도우 경로에서 드라이브 문자 추출   7.21 UNC 경로에서 서버명과 공유명 추출   7.22 윈도우 경로에서 폴더명 추출   7.23 윈도우 경로에서 파일명 추출   7.24 윈도우 경로에서 파일 확장자 추출   7.25 파일명에서 사용불가 문자 제거8장. 마크업과 데이터 상호변환   8.1 XML 방식의 태그 검색   8.2  태그를  태그로 치환   8.3 을 제외한 XML 방식의 태그 제거   8.4 XML 이름 대조   8.5 무형식 텍스트에 					
					


태그를 넣어 HTML로 변환 8.6 XML 방식 태그 안의 특정한 특성 검색 8.7 cellspacing 특성이 없는 태그에 cellspacing 특성 넣기 8.8 XML 방식 주석 제거 8.9 XML 방식 주석 안의 단어 검색 8.10 CSV 파일 안의 구분자 치환 8.11 특정 열에서 CSV 필드 추출 8.12 INI 섹션 헤더 대조 8.13 INI 섹션 블록 대조 8.14 INI 이름-값 쌍 대조찾아보기

정보의 나열도 나열이지만 조금은 생소한 문장들과

초반에 기초를 잡기 위한 예제제공도 부족하고

기초를 잡고 보는것을 추천합니다.

국내 정규식 책중 3권 있는데

한권은 단종이고

한권은 이책

한권은 얇은책으로 되어있는데 편하게 읽으실수 있을껍니다.

초반 예제들도 잘 제공되어있습니다.

드디어 손에 잡게 되었네요. 정규표현식.ㅎ

책을 받아 보면 엄청 두껍다는 걸 알게 됩니다. 책 이름에서 소개 하듯이 한 권으로 끝내려면 이정도는 되어야죠.ㅎ

목차만 해도 두장 반이 할애 되어 있습니다.

책을 본 뒤 언제라도 쉽게 다시 찾아 보고 싶은 것을 찾아 볼 수 있게 직관적으로 인덱싱 되어 있기 때문이죠.


책을 열면 가장 먼저 정규표현식이 무엇이고 어떤 경우에 사용하면 좋을지에 대해 소개 하고 있습니다. 그리고 테스트 할 수 있는 툴 및 웹도 소개 하고 있습니다.

저는 http://regex.larsolavtorvik.com 에서 javascript 를 많이 이용했습니다.

3장에서부터 8장까지 정규표현식을 응용한 것들에 대한 소개가 있으며 2장에서는 정규표현식 사용을 위한 기본기를 닦는 과정이라고 할 수 있습니다. 따라서 정규표현식에 대해 어느정도 지식이 있으면 2장은 건너뛰고 바로 3장부터 필요한 것만 봐도 될 것 같습니다.
모든 설명은 "질답"형식으로 되어 있습니다.

가장 먼저 문제를 제시하고 해결책을 보여줍니다. 다음으로 토의 후 응용이 나옵니다.

두께가 말해주듯이 상당히 많은 부분에 대해 소개가 됩니다.

다만 책의 앞부분에 "정규표현식의 가장 기초적인 사항까지도 이 책에선 일일이 설명하기 때문에 독자는 아무런 사전지식도 필요치 않다." 라는 표현이 나오는데, 사실 저로서는 조금 힘이 들었던 것이 사실입니다. 2장을 따라하며 어느 정도 익숙해 지긴 했지만 2장을 시작하기 전에 메타문자등 기본적인 것들을 어느 정도 정리 해주고 시작했으면 조금 더 편하게 볼 수 있었겠다 하는 아쉬움이 남았습니다.


그리고 이 책의 장점이자 단점이라고도 말할수 있을 것 같은 점은 "지나치게 세세하다"라는 것입니다. 예로 하나 들자면 3장에서 나오는

"대상 문자열과 일치 되는지 검사, 대상 문자열과 완전히 일치되는지 검사, 일치 텍스트 가져오기, 일치부 지점과 길이 알아내기, 일치 텍스트의 일부분 가져오기." 등 이후에도 종종 나오는 예제들에 대해 합칠 수 있는 부분들은 합친다거나 어느정도 응용이 가능한 부분은 굳이 설명을 안했더라도 괜찮지 않았을까 하는 생각이 들었습니다.

2장을 웹에서 어느정도 연습하고 3장 부터 .net 환경에서 샘플 소스 짜며 따라 했는데 결과를 바로바로 확인 할 수 있어 더욱 흥미를 느낄 수 있었습니다.

한 권으로 끝내는 정규표현식
2010/11/26
정규표현식이란 각종 현대적 애플리케이션과 프로그래밍 언어에 사용할 수 있는 특수한 텍스트 패턴이다.

정규표현식은 다음과 같은 용도로 사용할 수 있다
① 입력 내용이 그 텍스트 패턴에 일치하는지 여부를 검사
② 더 큰 범위의 텍스트 내에서 특정 패턴과 일치하는 텍스트를 찾아냄
③ 해당 패턴과 일치하는 텍스트를 다른 텍스트로 치환하거나 일치 텍스트의 일부를 재배치
능숙하게 정규표현식을 사용하면, 프로그램 작성과 텍스트 처리를 간소화할 수 있다.

예를 들어 어떤 문서에서 모든 이메일 주소를 추출하려면 몇십줄의 코딩이 필요하겠지만 적당한 정규표현식을 사용하면 몇 줄의 코드만 있으면 가능해진다. 또는 주민등록번호, 사업자번호 혹은 이메일을 등을 입력받을 때 제대로 된 텍스트인지 유효성 검사를 할 때도 매우 유용해 보인다.

이 책은 이런 정규표현식을 설명해주고 사용방법을 가르쳐 주는 책이다.
하지만 본인처럼 정규표현식에 대한 이해도가 적은 사람이 읽기에는 조금 어려운 책이다.




어디에다가 쓸까?
어디다가 쓸 것인지 개발자들과 같이 고민을 해봤다.

결론은 입력을 제한하고 데이터의 규칙성을 찾고 유효성 검토하는데 사용할 수 있다는 것을 알게 되었다.

여러가지의 프로그래밍 언어에서 사용이되고 ... 우리 프로젝트 팀에서는 C#이 필요하니 크게 문제 없이 사용이 될 수 있을 것 같다.

제대로된 값을 고정적으로 받아야 할 경우 ...

예를 들자면, EDI 중에서 Excel로 누군가 형식에 맞추어서 수작업을 해서 보내주는 데이터의 유효성 검토를 하는데 크게 도움이 될 것 같다.

아직 네트워크는 하늘을 날고 있지만 현업의 업무는 제자리 걸음을 하거나 엑셀 정도만 쓰는 경우들이 많은데

기능을 구현을 하더라도 현실은 그렇지 못하기 때문에 ...

그렇다고, 그 많은 입력 사항들을 Check 해 볼 수 는 없는 것 아닌가라는 생각을 해봤다.

그리고, 실제로 기능 구현 상에서 발생할 수 있는 입력의 오류를 최소화 할 수 있다고 확신한다.

데이터 마이그레이션을 하는데도 자동화 프로그램을 만드는데도 충분히 사용이 가능하다고 판단을 했다.



누가 봐야 하는지?
프로젝트를 맡고 있는 PM은 개발자가 아니기 때문에 이런 판단을 내리는 것은 좀 섣부른 판단이기는 하지만 본인 생각을 할때는 단위 개발자 보다는 Evangelist의 성향이 강한 사람이 봐야 한다고 생각한다.

개발을 충분히 몇개의 정규식으로 줄여서 표현할 수 있기 때문에 개발을 하면서 고민해야 할 부분은 어느 정도 규정화해서 진행을 한다면 생산성을 담보하는데 큰 어려움이 없어 보인다.

다만, 개발자들이 반발할 수 있는 부분은
"개발성이 떨어진다.",
"아는 사람만 아는 것 아니냐?",
"나는 개발자이니 직접 구현하는데 의미가 있다.",
"개인의 Skill을 배양하는데 어려움이 있다."


이런 의견은 있지만 프로젝트를 실패하거나 개발을 실패하는 것보다 충분히 좋은 의미로 받아드릴 수 있다.

대체로 이런 생각은 80-90년대에 개발을 하는 방식이라고 생각한다.

현재는 자신이 우선 개선을 하고 남과 공유를 하고 남이 개선해 놓은 내용을 잘 정리하면서 개발을 하는 것이 개발하는 사람으로 최고의 미덕이자 조직의 효율성을 높일 수 있는 방안이다.

누구를 위해서 개발을 하는지를 잘 한번 생각해보자.

어차피 자신이라면 일을 줄이고 성과에 집중하는 것이 옳다.

그런면에서는 정규식도 하나의 좋은 방법이 될 수 있다.




정규식에는 단점은 없나?
아주 오래전에 개발에서 손을 뗀 사람으로 직원들과 책을 같이 했다.

그러면서, 느꼈던 부분은 주석 관리를 잘 해야 겠다는 생각에 일치했다.


거의 암호문 같은 정규식만으로는 얻을 것이 없다.

그것을 잘 이해하고 잘 배치하고 용법을 표준화해서 정의하고 많은 사람들이 얼마나 잘 쓸 것인가를 고민하는 것이 숙제이다.

그것말고 단점이 있을까?


한 권으로 끝내는 정규표현식 - 결론

초반에 기본을 알려준다고는 하지만 그 내용이 너무 짧고 그 내용 또한 바로 이해가 되기에는 조금 어렵다고 보이기 때문이다. 정규표현식에 대한 설명이 얼마 나오지도 않았는데 갑자기 툴에 대한 설명이 들어가고 바로 예제들이 나오면서 조금은 당황스러웠다.

하지만 정규표현식에 대한 기본적인 지식이 있고 개발 과정에서 개발자의 코딩 시간을 단축시키고자 하는 독자에게는 매우 유용한 책이 될 듯하다.

또한 다양한 언어별로 설명하고, 해당 문제에 대해서 다른 방법으로 사용할 수 있는 예제도 있기에 보다 다양한 경우에 적용할 수 있지 않을까 싶다.
다만 전형적인 ‘문제 제기 ? 해결 모색’이라는 구조를 띄우고 있는 이 책은 ‘기출문제 풀이집’ 혹은 ‘참고서’라는 느낌이 많이 드는 책이라고 할 수 있다. 우리가 참고서를 보기 위해선 교과서와 같은 기초적인 책이 필요하듯이, 이 책만으로 정규표현식을 이해하기에는 많은 무리가 있어보인다.

그래서, 정규식 활용서적이 실제 적용되는 사항을 정리된 것이 있었으면 좋겠다.

물론, 이 책에는 용법에 대해서 너무 잘 나와있지만 잘 쓰는 것만 추려도 좋을 것 같다.

한 권으로 끝내는... 이런 제목의 책은 왠지 믿음이 가지 않았다.

그러나 이 책은 이러한 조금은 오만한 제목이 왠지 더 어울린다.

8가지 프로그래밍 언어 (Perl,.net, java, javascript, Python, ruby,VB.net,PCRE)의 정규 표현식을 다루고 있으니 말이다.



정규 표현식 하면 내가 생각할 수 있는 한계는 웹 프로그래밍에서 입력값을 검증하기 위한 javascript정도였다.

이렇게 다양한 언어에서 사용할 수 있는 지에 별 관심도 없었고 잘 사용하지 않았다.

웹프로그래밍이란 끝없는 삽질로만 결실을 만들 수 있다고 생각했다.



하지만 이 책을 통해 조금 더 똑똑하고 영악하게 일해야겠다는 생각을 했다. ^^


기존에 10줄 심지어는 20줄을 넘기던 나의 단순 무식한 코드는 정규 표현식을 통해 단 1줄로 깔끔하게 정리할 수 있었다.

이 책에 소개되어 있는 myregexp.com의 온라인 테스터를 활용하여 개발 시간까지 단축할 수 있었다.



정규식이라는게 아는 개발자에게는 "이보다 더 좋을 수 없다" 이지만 모르는 코더에게는 육두문자일 수 밖에 없기도 하다.

그래서 유지보수 차원에서는 코드의 가독성이 떨어질 수도 있을 것 같다.



이런 경우! 이 책은 진가를 발휘한다.

백과사전식 구성으로 쉽게 필요한 부분을 찾아 볼 수 있고

웹 페이지의 링크를 걸어놓은 듯 관련 내용에 대해 페이지 및 줄수까지 명시를 해 주어 매우 편리하다.

또한 따라해보기 식의 단순한 구성이 아닌 원리를 알려주어 다양하게 응용할 수 있는 힘을 키워준다.



처음 프로그래밍을 시작하는 프로그래머가 보기에는 무리가 있어보인다.

중급이상의 개발자가 자신의 내공을 좀 더 쌓고자 한다면 책상 옆에 두고 항상 참고할 수 있는 좋을 참고서가 될 것이다.



그러나 8가지 언어에 대해 설명을 하다보니 책을 볼 때 몰입도가 조금 떨어지는 면도 있었고

상세한 예제보다는 레퍼런스식의 예제들이 나와있어서 내용이 딱딱하고 나열식으로 나와있어

필자가 추천한대로 처음부터 차분히 읽는 것은 만만치 않을 일이다.



처음 1,2,3장은 정독을 하고 이후 부분에 대해서는 필요시에 찾아보며 익히는 것이 이책을 더 잘 활용하는 방법일 것 같다.



이 책을 통해서 정규식을 이용한 똑똑한 프로그래밍에 대해 배울 수 있었고

인터넷 서핑을 통해 다른 사람이 만들어 놓은 코드들을 그대로 베끼는는 것이 아닌

내 스스로 뭔가 만들고 싶다는 열정과 정규식이라는 마술같은 도구에 호기심을 갖게되는 나를 발견할 수 있었다.



스마트하게 프로그램을 하도자 하는 중급이상의 개발자라면 꼭 한권씩 옆에 끼고 참고해야 할 책이다.

책의 내용:
정규식은 매력적인 도구입니다. 단, 만능해법은 아니며 복잡도에 따른 연산시간 증가를 반드시 고려해야만 합니다.

참고로 다음부분은 저의 경험담입니다. HTML 페이지에서 원하는 텍스트만 얻기 위해 나름대로 파싱코드를 짰으나 그 결과는 제가 의도한대로 동작하지 않았습니다. HTML 태그의 너무나도 다양한 각 속성과 값의 사용방식이 예외적인 상황을 일으키는 변수로 작용했던 것이지요. 옆에서 같이 작업하던 후배와 이야기 하던 중 알게된 것이 바로 정규식의 효과였습니다. 단 한줄의 정규표현식을 사용한 메소드 호출(String.ReplaceAll("regex"))은 저의 몇십줄 코드보다 뛰어난 성능을 내고 있던 것입니다. 정규식... 그 당시에는 아무리 봐도 도저히 이해가 가지 않았습니다. 당시 그 학기에 전공 과목 중에서 컴파일러를 수강하기도 했으나 강의내용 중에서 중요한 부분인 정규식이 프로그램에서 사용되는 정규표현식과 동일하다는 사실도 미쳐 모르고 있었습니다.
프로젝트에서 문자열 분석을 주로 해야 했기 때문에 로직을 간편하게하기 위해 정규식 사용이 절실히 필요해져서 이후에 위키디피아 등으로 POSIX 작성규칙을 보고 따라했으나 결코 쉽지 않았습니다. 프로그래밍 언어별로 모든 사항들이 적용되는게 아니었고 책에서(47 페이지) 초보자가 흔히 하는 실수 중 하나인 이스케이프 처리 남용은 저 또한 반복하던 실수였습니다.
이스케이프 시퀀스라는 용어는 다른번역서 등에서 탈출문자, 확장열이라고 번역되어 사용되었기 때문에 정확한 의미도 모르고 사용하고 있었습니다. 그런데 책에서(49페이지) 정확히 해설을 해주어서 이번기회에 알게 되었습니다.
책에서 예제로 제시한 모든 프로그래밍 언어를 숙지하고 있지 않았기 때문에 당장 필요한 자바와 자바스크립트 위주로 정규표현식 예제를 활용했습니다.
번역본이다 보니 어느정도 "나태한" 등의 매끄럽지 않은 번역체 느낌을 주기도 합니다. 오타가 거의 없습니다.
정규식과 관련해 유니코드에 대한 자세한 설명과 유니코드의 표기법, 언어별 분류인 부록, 스크립트의 의미에 대해서도 정말 자세히 알게되었습니다.

책의 구성:
책의 초반부에서는 정규표현식 작성 및 테스트를 위한 다양한 툴을 소개합니다. 웹 애플리케이션이나 데스트탑용 애플리케이션을 소개 하고 있으며, 유료와 무료여부도 구분을 해놓았습니다.
편집기 프로그램 등에서 찾기 또는 바꾸기 기능을 사용하기 위해 해당 기능을 실행하면 다이얼로그에 정규식을 사용할 것인지, 대소문자구분은 어떻게 할것인지, 어떻게 매칭시킬것인지 등을 체크할 수 있습니다. 이 옵션에 대한 설명도 책에서 다루고 있습니다. 예를 들면, 특정 정규식을 적용할 때 대소문자는 구분하지 않는다고 미리 기술해 놓고 있습니다.
책의 전체적인 구성은 다음과 같습니다.
각 챕터는 소단원 또는 주제를 나열하는 방식으로 구성이 되어있습니다. 그 주제는 문제(실세계에서 겪게되는 문자열 처리에 관한 문제)-해결책(8개의 프로그래밍 언어 각각에 대해 모범답안을 제시합니다)-토의(제시한 모범답안의 정규표현식이 왜 저렇게 작성되고 어떻게 작동하는지 정말 자세하게 설명을 해줍니다) 여러가지 문제들을 제시하며 어떻게 해결할 수 있는지 사례기반으로 그 해법과 설명을 제시합니다. 이점이 다른 책과의 가장 큰 차이점 입니다.
부분문자열을 찾는 문제부터 이메일주소 검사하기, 전화번호 검사하기, 날짜와 시간 검사하기, 우편번호 검사하기, 숫자(정규식은 숫자의 경우도 모두 문자로 처리하기 때문에 주의해야 합니다) 처리하는 방법, URL 유효성 검사, HTML 태그에서 원하는 부분만 추출하는 방법, XML 태그에서 원하는 부분만 추출하는 방법 등 다양한 사례를 제시하고 있고, 최대 8개의 프로그래밍 언어별로 구현방법을 제시하고 있다는 것이 가장 큰 장점입니다.
설명방식이 약간은 지루하고 딱딱할 수도 있습니다만, 문자열 파싱 시 원하는 결과를 얻기 위해 적당한 사례를 찾는 방식으로 이 책을 활용한다면 그 효과는 몇배가 될 것입니다.
그리고, 초반부의 내용을 잘 숙지해야 이후에 제시되는 사례기반의 정규표현식 해법들을 이해하기 용이하며, 프로그래밍에 적용해서 원하는 결과를 얻기 위해서는 수많은 연습을 꼭 하셔야 합니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
한 권으로 끝내는 정규표현식
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
한 권으로 끝내는 정규표현식
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
한 권으로 끝내는 정규표현식
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1