Python

[Python] re - 정규 표현식을 이용한 문자열 검색

비번변경 2022. 8. 26. 18:06

re

파이썬의 기본 라이브러리 중 하나로 정규 표현식을 지원하기 위한 모듈이다.

re는 regualr expression의 약자다.

 

 

사용법

기본 라이브러리이므로 별도 설치 없이 import하여 사용할 수 있다.

import re

p = re.compile('ab*')

 

re 모듈은 4개의 문자열 검색 모듈을 제공한다.

 

match

문자열의 처음부터 시작해서 정규식이 일치하는지 확인한다. match 객체 또는 None을 반환한다.

import re

print(re.match('[a-z]+', 'python'))
print(re.match('[a-z]+', '3 python'))

match

문자열 "3 python"의 경우, 처음에 위치한 3이 [a-z]+을 만족하지 않아 None을 반환한다.

 

 

search

문자열 전체를 검색하여 정규식이 일치하는지 확인한다. match 객체 또는 None을 반환한다.

import re

print(re.search('[a-z]+', 'python'))
print(re.search('[a-z]+', '3 python'))

search

문자열이 처음부터 정규식에 일치해야하는지, 일부만 일치해도 되는지에 따라 match 메서드와 search 메서드를 적절히 사용해야 한다.

 

 

findall

정규식에 일치한 모든 문자열을 리스트로 반환한다.

import re

print(re.findall('[a-z]+', 'Life is too short.'))

findall

Life의 경우 대문자 L이 정규식에 일치하지 않아 제외되었다.

 

 

finditer

정규식에 일치한 모든 문자열을 반복 가능한 객체(iterator)로 돌려준다.

import re

print(re.finditer('[a-z]+', 'Life is too short.'))

finditer

iterator 객체는 for문을 통해 출력할 수 있다.

import re

for r in re.finditer('[a-z]+', 'Life is too short.'):
    print(r)

iterator 출력

 

 

참고 문서

https://wikidocs.net/4308#_5