Regular Expression   정규 표현식

(2019-09-02)
1. 정규 표현식 (Regular Expression)

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

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


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


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

  ㅇ 역사
     - 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개 작업 모드로써 동작)


4. 정규 표현식의 기본 : 주요 구성/규칙 등

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


5. 정규 표현식의 기본 연산

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

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

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

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


6. 정규 표현식의 메타 문자 (특수 문자 기호)

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

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


7. 정규표현식의 기초 활용

  ※ ☞ 정규표현식 활용 기초 참조
     - 문자열 부위의 위치 구분, 문자열 일치의 종류, 캡처와 치환 등


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

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


[정규표현식] 1. 정규 표현식 2. 메타 문자 3. 메타문자 수량자 4. 메타문자 그룹화 5. 메타문자 앵커 6. 정규표현식 활용 기초 7. 정규표현식 예
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램, 프로그래밍
      1.   프로그래밍 언어론
      2.   프로그래밍 방법론
      3.   객체지향 프로그래밍
      4.   자료표현코드
      5.   자료구조
      6.   알고리즘
      7.   시스템 소프트웨어
        1.   번역/번역기
        2.   컴파일러
        3.   정규표현식
          1.   1. 정규 표현식
              2. 메타 문자
              3. 메타문자 수량자
              4. 메타문자 그룹화
              5. 메타문자 앵커
              6. 정규표현식 활용 기초
              7. 정규표현식 예
        4.   (기타)
      8.   프로그래밍언어 종류
      9.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

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