정규표현식
정의
- 문자열을 다룰 때 문자열의 일정한 패턴을 표현하는 일종의 형식 언어
정규표현식 활용했을 때 장점
- 특정 규칙이 있는 텍스트 데이터를 빠르게 정제 가능
파이썬에서는 re모듈을 지원
정규표현식 문법
특수문자 | 설명 |
---|---|
. | 한 개의 임의의 문자를 나타냄 |
? | 앞의 문자가 존재할 수도 있고 없을 수도 있음(앞의 문자가 0 또는 1개) |
* | 앞의 문자가 무한히 존재할 수도 있고 없을 수도 있음(문자가 0개 이상) |
+ | 앞의 문자가 최소 1개 존재(문자가 1개 이상) |
^ | 뒤의 문자열로 문자열이 시작됨 |
$ | 앞의 문자열로 문자열이 끝남 |
{숫자} | 숫자 만큼 반복 |
{숫자1,숫자2} | 숫자1 이상, 숫자2이하 만큼 반복 |
{숫자, } | 숫자 이상 만큼 반복 |
[ ] | 대괄호 안의 문자들 중 한 개의 문자와 매치. 범위 지정 가능 |
[^문자] | 해당 문자를 제외한 문자를 매치 |
AlB | A 또는 B |
역슬래쉬 3개 | 역슬래쉬 문자 자체를 의미 |
역슬래쉬 2개+d | 모든 숫자를 의미 |
역슬래쉬 2개 + D | 숫자를 제외한 모든 문자 == [^0-9] |
역슬래시 2개 + s | 공백 |
역슬래시 2개 + S | 공백을 제외한 모든 문자 |
역슬래시 2개 + w | 문자 또는 숫자 |
역슬래시 2개 + W | 문자 또는 숫자가 아닌 문자 == [^a-zA-Z0-9] |
정규표현식 모듈 함수
함수 | 설명 |
---|---|
re.compile() | 정규표현식을 컴파일하는 함수. 파이썬에 정규표현식을 전달 |
re.search() | 문자열 전체에 대해서 정규표현식과 매치되는지를 검색 |
re.match() | 문자열의 처음이 정규표현식과 매치되는지 검색 |
re.split() | 정규표현식을 기준으로 문자열 분리. 리스트로 리턴 |
re.findall() | 문자열에서 정규표현식과 매치되는 모든 경우의 문자열을 찾아서 리스트로 리턴. 없으면 빈 리스트 생성 |
re.finditer() | 문자열에서 정규 표현식과 매치되는 모든 경우의 문자열에 대한 이터레이터 객체를 반환 |
re.sub() | 문자열에서 정규 표현식과 일치하는 부분에 대해서 다른 문자열로 대체 |