파이썬에서는 정규 표현식 모듈 re을 지원하므로, 이를 이용하면 특정 규칙이 있는 텍스트 데이터를 빠르게 정제할 수 있습니다. 본격적으로 정규 표현식에 대해서 실습해보기에 앞서 정규 표현식을 위해 사용되는 특수 문자와 모듈 함수에 대해서 알아보도록 하겠습니다.
정규 표현식을 위해 사용되는 문법 중 특수 문자들은 아래와 같습니다.
정규 표현식 문법에는 역 슬래쉬(\)를 이용하여 자주 쓰이는 문자 규칙들이 있습니다.
정규표현식 모듈에서 지원하는 함수는 이와 같습니다.
앞으로 진행될 실습에서는 re.compile()에 정규 표현식을 컴파일하고, re.search()를 통해서 해당 정규 표현식이 입력 텍스트와 매치되는지를 확인하면서 각 정규 표현식에 대해서 이해해보도록 하겠습니다. re.search() 함수는 매치된다면 Match Object를 리턴하고, 매치되지 않으면 아무런 값도 출력되지 않습니다.
앞서 표로 봤던 정규 표현식 특수 문자에 대해서 직접 예제를 통해 이해해보도록 하겠습니다.실습을 위해 정규표현식 모듈 re를 임포트합니다.
import re
.은 한 개의 임의의 문자를 나타냅니다. 예를 들어서 정규 표현식이 a.c라고 합시다. a와 c 사이에는 어떤 1개의 문자라도 올 수 있습니다. 즉, akc, azc, avc, a5c, a!c와 같은 형태는 모두 a.c의 정규 표현식과 매치됩니다. 실제 예제를 통해 이해해보도록 하겠습니다.
r = re.compile("a.c")
r.search("kkk") # 아무런 결과도 출력되지 않는다.
r.search("abc")
<_sre.SRE_Match object; span=(0, 3), match='abc'>
위의 코드는 search의 입력으로 들어오는 문자열에 정규표현식 패턴 a.c이 존재하는지를 확인하는 코드입니다. (.)은 어떤 문자로도 인식될 수 있기 때문에 abc라는 문자열은 a.c라는 정규 표현식 패턴으로 매치되는 것을 볼 수 있습니다.