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. 정규 표현식

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