정규식 사용하기

|

Python에서 re 모듈은 정규 표현식(Regular Expression)에 관련된 라이브러리입니다.

^$ 연산자를 사용해서 각 줄의 시작과 끝을 매칭 가능하며 대소문자를 무시하는 re.I 플래그나 여러 줄로 이루어진 텍스트에 적용할 수 있는 re.M 플래그를 많이 사용합니다.

정규식 문법

기본 연산자

연산자 | 설명 —|— . | 개행 문자를 제외한 모든 문자 a | 문자 a ab | 문자열 ab x|y x나 y \y | 특수문자(^+{}$()[]|-?.* 등)에서 탈출


문자열 클래스

연산자 설명
[a-d] a 부터 d 까지 중 문자 1개
[^a-d] a, b, c, d를 제외한 문자 1개
\d 숫자(digit) 1개
\D 숫자가 아닌 개체 1개
\s 공백 1개
\S 공백이 아닌 개체 1개
\w 알파벳 또는 숫자 1개
\W 알파벳이나 숫자가 아닌 개체 1개


양적 연산자

연산자 설명
x* 0개 이상의 x
x+ 1개 이상의 x
x? 0 또는 1개의 x
x{2} x가 정확히 2개
x{2, 5} x가 2개부터 5개까지


탈출 연산자

연산자 설명
\n 새로운 라인(개행 문자)
\r 캐리지 리턴(현재 줄의 맨 앞)
\t 탭(tab)


위치 지정

연산자 설명
^ 문자열의 처음
\b 단어 경계
\B 비단어 경계
$ 문자열의 끝


그룹

연산자 설명
(x) 캡처링 그룹(capturing group)
(?:x) 비캡처링 그룹(non-capturing group)


정규식 예제

이메일 주소

r"\w[-\w\.]*@\w[-\w]*(\.\w[-\w]*)+"

HTML 태그

r"<TAG\b[^>]*<(.*?)</TAG>"

부동 소수점

r"[-+]?((\d*\.?\d+)|(\d\.))([eE][-+]?\d+)?"