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. 정규표현 메타 문자
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
      1.   프로그래밍 언어론
            1. 프로그래밍 언어
        1.   구문
          1.   1. 구문
              2. 구문 용어
              3. BNF,EBNF
              4. 제어문,대입문
              5. 토큰
              6. 식별자
              7. 식,문장
        2.   변수 바인딩
        3.   자료형/데이터형
        4.   예외,이벤트 처리
      2.   객체지향
      3.   자료구조
      4.   알고리즘
      5.   자료표현(알파벳/코드)
      6.   시스템 소프트웨어
      7.   프로그래밍언어 종류
      8.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

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