본문 바로가기

python

정규 표현식(Regular Expression) : re library(python) - (1)

정규 표현식에 대한 위키피디아의 정의는 다음과 같다.

 

A regular expresstion (Shortened as regex or regexp; sometimes reffered to as rational expression) is a sequence of chararters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation. Regular expression techniques are developed in theoretical computer science and formal language theory.

 

정규 표현식이란 텍스트 안에서 특정한 규칙을 가지는 문자열의 집합을 표현하는 방식이다. regrex나 regexp로 줄여 부르기도 한다.

 

컴퓨터이론, 형식언어 이론을 통해 발전해 왔으며, 컴퓨터 알고리즘에서 특정 문자열을 찾거나, 찾아서 바꾸는 데 주로 사용하고 있다.

 

 파이썬의 정규 표현식을 불러오는 라이브러리는 're'이다.

 

자주 사용하는 정규 표현식 패턴 (1)

 

    \d : 0부터 9사이의 모든 숫자와 match. 이 표현은 [0-9]로도 쓸 수 있다.

    \D : 숫자가 아닌 문자열과 match. [^0-9]로도 쓸 수 있다. (^: Not이라는 의미로 이해)

    \s : 공백(whitespace)과 match. 조금 더 복잡하게 쓰면 [ \t\n\r\f\v]가 된다.

    \S : 공백이 아닌 것과 match. ^을 붙여 [^ \t\n\r\f\v]로 쓸 수 있다.

    \w : 문자 + 숫자와 match

    \W : 문자 + 숫자가 아닌 것들과 match

 

    . : Dot. \n(줄바꿈)을 제외한 모든 문자와 match 만약 dot 그자체를 매칭하고 싶다면 [.]으로 사용한다.

    *와 +  : '*'은 바로 앞의 문자가 반복 될 경우 match된다. 이때 0번 반복될 경우에도 match시킨다. '+'는 '1번 이상 반복 될 때 match시킨다.

    {m, n} : 앞에 있는 문자를 m번부터 n번까지 반복할 경우 match

    ? : 앞에 있는 문자가 0번 또는 1번 반복되었을 때, 즉 있거나(딱 한번) 없을 때 match

 

    ^ : 문자열의 시작부터 해당 정규식을 만족할 경우 match

    $ : 문자열의 끝에서 해당 정규식을 만족할 경우 match

    | : or와 같음