Regular Expression   정규 표현식

(2018-12-31)

전방 일치, 전방 매치, 후방 일치, 후방 매치

1. 정규 표현식 (Regular Expression)

  ㅇ 1 이상의 문자 또는 기호를 조합해 만들어진 문자열 축약 표현식/패턴

  ㅇ 정규표현식 응용 : 문자열 처리/조작 기술에 가장 많이 쓰여짐
     - 문자열 패턴을 간단한 식으로 표현하여,
     - 이를 문자열 조작/처리에 응용
        . 例) 특정 문자열의 검색, 추출, 삭제, 치환 등

  ※ 한편, 정규(Regular)는,
     - 원래, `규칙적인`,`정식인`,`좋은 성질을 갖는``,`다루기 쉬운` 등을 의미
     - 여기서는, 단순하고 쉽고 강력하며 실용적인 이라는 뜻을 내포함


2. 정규 표현식 역사 및 구현 엔진

  ㅇ 역사
     - 1950년대 : 스티븐 클레이니(Stephen Kleene), `정규 집합` 수학모델 창시
     - 1960,1970년대 : 케네스 톰슨(Kenneth Thompson), 정규표현식 적용 논문 발표 및 구현
     - 1990년대 : 필립 헤이즐, 정규표현식 라이브러리 PCRE 개발

  ㅇ 구현 엔진 구분
     - DFA (Deterministic Finite Automation, 결정적 유한 오토마타)
     - NFA (Non Deterministic Finite Automation, 비 결정적 유한 오토마타)
        . 例) PCRE(Perl Compatible Regular Expression), VIM(Vi IMproved) 등
           .. vim : 유닉스/리눅스 환경 하의 텍스트편집기인 vi를 개선한 버전
                    (읽기 중심으로 편집,검색,명령 4개 작업 모드로써 동작)


3. 정규 표현식의 기본 (주요 구성/규칙 등)

  ㅇ (표시)  대부분의 정규 표현식은 슬래시(/)로 감싸짐
  ㅇ (연산)  기본 연산 셋 : 연접, 반복, 선택                              ☞ 아래 4.항 참조
  ㅇ (기호)
     - (순수 문자)  리터럴 : `문자,숫자` 등 그 자체
     - (특수 문자)  패턴 기호 : 기본 연산에 추가적인 `메타 문자`          ☞ 아래 5.항 참조


4. 기본 연산

  ※ 정규표현식 내 조합해서 패턴을 만드는 기본 연산연접 (Concatenation) 
     - 별도의 특별한 기호는 없고, 단지 붙여쓰기 만 하면 됨

  ㅇ 반복 (Repetition) 
     - 반복을 나타내는 수량자 :  *, +, ?, {}

  ㅇ 선택 (Selection)     
     -  | (OR,선택 또는 UNION,합)
        .  例) the|The|THE => the 또는 The 또는 THE 라는 문자열 패턴을 나타냄

  ※ 연산 결합 우선순위 : 반복 > 연접 > 선택


5. 메타 문자 (특수 문자 기호)

  ㅇ 위 4.항의 기본 연산에 추가시켜, 쉽게 쓸 수 있도록 만들어진 패턴 기호 : 메타 문자 
     - 비록, 정규표현식이,
        . 기본 연산 만으로도 표현 가능하지만,
        . 특별한 의미를 갖는 문자들로써, 
        . 프로그래머 관점으로 정규표현식을 보다 쉽게 표현할 수 있는 방법임
     - 例) 수량자, 점, 문자 클래스, 앵커, 수정자 등

  ※ ☞ 정규표현 메타 문자 참조
     - 선택 `|`, 문자 클래스 `[ ]`, 서브 패턴 `( )`, 수량자(Quantifier) `*, +, ?, { }`, 
       위치 고정 앵커 `^, $`, 특정 용도 앵커 `\`, 임의 한 문자 `.`, 
       수정자(Modifier) `g, i, m, s`, 이스케이프 `\` 등


6. 정규표현식 활용

  ※ ☞ 정규표현식 활용 기초 참조


7. 정규표현식 테스트용 사이트자바스크립트 지원 : regexr.com. regexpr.com

  ㅇ PCRE/자바스크립트/파이썬 지원 : regex101.com, debuggex.com


[정규표현식] 1. 정규 표현식 2. 정규표현 메타 문자 3. 정규표현식 활용 기초 4. 정규표현식 예

 
        최근수정     요약목록     참고문헌