Regular Expression   정규 표현식

(2017-11-11)
1. 정규 표현식 (Regular Expression)

  ㅇ 1 이상의 문자 또는 기호를 조합해 만들어진 표현식
     - 응용 : 문자열 패턴을 간단한 식으로 표현하여, 문자열 처리에 응용
        . 例) 검색, 추출, 삭제, 치환 등

  ※ 한편, 정규(Regular)는 규칙적인, 정식인, 좋은 성질을 갖는, 다루기 쉬운 등을 의미


2. 정규 표현식 기본

  ㅇ 대부분의 정규 표현식은 슬래시(/)로 감싸짐

  ㅇ 기본 패턴 기호
     - 리터럴    (일반 문자 기호)

     - 메타 문자 (특수 문자 기호) 
        . 선택          : | 

        . 문자 클래스   : [ ]
           ..  대괄호 [] 내의 모든 문자 일치
           ..  例) 0부터 9까지 모든 1개 숫자와 매치하려면, [0123456789]
        . 서브 패턴     : ( )
           ..  例) color 또는 colour 매치하려면, col(o|ou)r

        . 수량자 (반복) 
           ..  *     (최소 0회 이상 매치)
           ..  +     (최소 1회 이상 매치)
           ..  ?     (0 또는 1회 만 매치, 아예 없거나 1회 만 나타남, 최대 1회)
           ..  {n,m} (범위 지정 반복, n회부터 m회까지 반복)

        . 범위 지정     : -
           ..  例) [0-9] : 0부터 9까지 어느 숫자라도 일치함

        . 앵커          : ^, $, \A, \Z, \z
           ..  정규식 패턴을 특정 위치에 고정하여, 그 위치에 일치시키기 위함
           ..  ^ : 문자열의 처음
           ..  $ : 문자열의 끝
           ..  g : 전역 검색 (모든 일치를 전부 대상으로 함)

        . 임의 한 문자  : .

     - 기타 메타 문자
        . \d  :  1개 숫자(0-9)
        . \D  :  위 \d의 반대(숫자가 아닌 모든 문자)
        . \s  :  1개 공백문자(공백,,캐리지리턴,줄바꿈 등)
        . \S  :  위 \s의 반대(공백문자가 아닌 모든 문자)
        . \w  :  단어(a-z,A-Z,0-9,_)
        . \b  :  단어 경계
        . \B  :  위 \b의 반대(단어 경계를 제외한 모든 문자)
        . \.  :  임의 한 문자와의 혼동 방지


3. 정규표현식의 기본 연산연접 (Concatenation) : 정규 표현식을 연결하는 연산
     -  .  이때 특별한 기호는 없고, 단지 붙여쓰기 만 하는 경우임

  ㅇ 반복 (Repetition)    : *, +, ?, {}
     -  *      : 직전 문자가 0회 이상 반복 일치함 (없거나 1회 이상)
     -  +      : 직전 문자가 1회 이상 일치함 (최소 1회 이상)
     -  ?      : 직전 문자가 없거나 1번 만 일치함
     -  {n}    : 정확히 n번 반복
     -  {n,}   : n번 이상 반복
     -  {n,m}  : 최소 n번부터 최대 m번까지 반복

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

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


4. 정규 표현식 例)

  ㅇ 0부터 9까지 숫자 하나     :  0|1|2|3|4|5|6|7|8|9 또는 [0123456789] 또는 [0-9] 또는 \d
  ㅇ [0-9]의 3회 반복          :  [0-9]{3}
  ㅇ 임의 길이의 숫자          :  \d*
  ㅇ 임의 길이의 영문 알파벳   :  [A-Za-z]*
  ㅇ 식별자                   :  [A-Za-z_][A-Za-z0-9]*
  ㅇ 5개 숫자 만으로 된 문자열 :  ^\d\d\d\d\d$


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

 
        최근수정     모바일웹     참고문헌