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