정규식 사용하기
08 Nov 2017
|
Python
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+)?"