여덟 가지 프로그래밍 언어별 완벽 해설
Edit me

개요

표지 저자: 잰 고이바에르츠(Jan Goyvaerts), 스티븐 리바이선(Steven Levithan)
책제목 : 한 권으로 끝내는 정규표현식
(원서 제목 : Regular Expressions Cookbook)
부제 : 여덟 가지 프로그래밍 언어별 완벽 해설
(원서 부제: Detailed Solutions in Eight Programming Languages)

출판사 : 한빛출판네트워크 (원책: O’Reilly Media, Inc.)
ISBN 한글 : 9788979147742
ISBN 영문 : 9781449319434

값: 36,000원

추가 개요

저자 설명 - 얀 고이바르츠 (Jan Goyvaerts)

Jan Goyvaerts

스티븐 레비턴 (Steven Levithan)

Steven Levithan

Chapter1. Introduction to Regular Expressions

  • 실무에 바로 적용할 수 있는 내용은 4장 ~ 8장(마지막장) 참고
  • 일단 정규식을 코드에 넣어버리면 에러가 발생해도 찾기 힘듬
    • 1장에서 소개하는 툴로 테스트하고 디버깅하는 것이 좋음

Regular Expressions Defined

  • History of the Term “Regular Expression”
    • 정통 컴퓨터 과학자들이 정해놓은 정의와 실용적 프로그래머들이 실용적으로 사용하는 용어에는 차이가 있음을 알아둘것
    • 어려운 전문용어들이 많이나옴 ( DFA, NFA…)
    • BackTracking의 사용여부가 정의에 차이를 가져올만큼 중요한 듯함.

Many Flavors of Regualr Expressions

  • 정규표현식을 정의하기는 어려움
    • 어떤 텍스트가 정규식인지 아닌지 판단하는 공식적인 기준이 없음

Regex Flavors Covered by This Book

Perl

.NET

Java

Javascript

Python

Ruby

Search and Replace with Regular Expressions

  • 용어
    • 치환 텍스트 ( Replacement Text ) : 정규식은 아니지만 일부 정규식 문법을 사용하여 동적인 치환을 가능케 함

Many Flavors of Replacement Text

  • 각자 개발하다보니 문법과 기능이 다른 여러가지 정규식 스타일이 파생됨

정규표현식 작성 툴

2장. 정규표현식 기본 기술

리터럴 텍스트에 일치

  • Match Literal Text 예제 실행
    • 메타 문자는 기본적으로 back slash( ∖ ) 로 escape 한다.
    • 위의 예제에서 책의 해결책과 다른점은 slash( ⁄ )문자도 escape 했다는 것
      • slash( ⁄ )는 regex 문자열을 구분하는 delimiter 인듯한데..메타문자에는 포함되지 않아 확실치 않음.
    • Flavor별 차이
      • Flavor를 Python으로 변경하면 double quote ( ‟ ) 문자를 인식못함. escape 필요
      • Flavor를 Golang으로 변경하면 백틱문자를 인식못함.
        • back slash 로 escape도 불가함 , 백틱문자대신 \x60 으로 대체해야함
  • 12개의 특수문자(메타문자)를 포함하는 문장을 어떻게 매치시킬수 있는지 알아봄
  • 문자의 특수기능을 escape 해야함
  • 짝이 필요한 특수문자 ( ], -, } )는 앞선 짝문자가 있어야 특수문자로 인식됨
  • 블록 이스케이프는 Java 6, PCRE, Perl에서 사용할수 있지만,…
  • 대소문자 구분 없이 일치
    • 예제 실행
    • 모드 변경자 <(?i)>를 사용함?
    • 자체 모드 변경자 예제
    • sensitive(?i)caseless(?-i)sensitive

여러 문자 중 하나와 일치

응용 - 약기 문자 클래스

3장. 프로그래밍을 위한 정규 표현식

4장. 유효검사와 형식화

한국 주민등록번호

  • 원서에는 없는데 역자가 집어넣은듯..

5장. 단어, 행, 특수문자

6장. 숫자

7장. URL, 경로, 인터넷주소

8장. 마크업과 데이터 상호변환

 javascript for impatient jekyll-spaceship