Regular Expression   정규 표현식

(2018-10-13)
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. 정규 표현식의 기본 (주요 구성/규칙 등)

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


4. 기본 연산

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

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

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

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


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

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

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


6. 정규표현식 활용

  ㅇ 활용 기초 (주로, 문자열 조작에 쓰임)
     - 활용 대상 : 문자열 또는 문장
     - 조건 지정 : 정규 표현식(문자열 패턴)
     - 실행 종류 : 검색, 추출, 치환, 검사 등

  ㅇ 캡처와 치환
     - 캡처 : 정규표현식과 문자열로부터 서브매치를 빼내는 것
     - 치환 : 정규표현식을 사용하여 특정 문자열을 치환하는 것

  ㅇ 문자열 단어의 부위 구분
     - 접두사(Prefix) : 선두 문자열
     - 접미사(Suffix) : 말미 문자열
     - 부분 문자열(Substring) : 포함된 문자열문자열 일치의 종류
     - 완전 일치 : 주어진 문자열 전체에 일치 (주로, 문자열 검증에 이용)
     - 전방 일치 : 주어진 문자열접두사(prefix)에 일치
     - 후방 일치 : 주어진 문자열의 접미사(suffix)에 일치
     - 부분 일치 : 주어진 문자열의 부분 문자열(substring)에 일치 (주로, 검색,치환에 이용)

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

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


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

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