Regular Expression   정규 표현식

(2018-07-16)
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) 등

  ㅇ 주요 구성 및 규칙
     - 대부분의 정규 표현식은 슬래시(/)로 감싸짐
     - (연산) 기본 연산 셋 : 연접, 반복, 선택
     - (일반 순수 문자 기호) 리터럴 
     - (특수 문자 기호) 기본 연산에 추가적인 패턴 기호 : 메타 문자 
        . 특별한 의미를 갖는 문자들로써, 
        . 비록 정규표현식이 기본 연산 만으로도 표현 가능하지만,
        . 이를 보다 쉽게 표현할 수 있는 방법임
           .. 例) 수량자, 점, 문자 클래스, 앵커, 수정자 등


3. 정규표현식 내 기본 연산

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

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

  ㅇ 선택 (Selection)     
     -  | (OR,선택 또는 UNION,합)

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


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

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


5. 정규표현식 활용

  ㅇ 대상 : 문자열

  ㅇ 조건 : 정규 표현식(문자열 패턴)

  ㅇ 실행 : 검색, 치환, 검사

  ※ 정규표현식 활용 例  ☞ 정규표현식 예 참조

  ※ 주요 프로그래밍 언어에서 정규표현식 例  ☞ 자바스크립트 정규표현식, PHP 정규표현식 참조


[정규표현식] 1. 정규 표현식 2. 정규표현식 예 3. 정규표현 메타 문자

 
        최근수정     요약목록(시험중)     참고문헌