[파이썬] 정규 표현식 모듈 (re) 소개
정규 표현식은 텍스트에서 패턴을 찾기 위해 사용되는 강력한 도구입니다. 이를 통해 특정 문자열 패턴의 비교, 검색, 추출, 치환 등을 수행할 수 있습니다. Python에서는 re
모듈을 제공하여 정규 표현식을 쉽게 사용할 수 있습니다.
정규 표현식의 기본 용어
- 패턴 (Pattern): 정규 표현식으로 찾으려는 텍스트 패턴입니다. 예를 들어, 이메일 주소를 찾기 위한 패턴은
[\w\.-]+@[\w\.-]+\.\w+
와 같이 표현됩니다. - 문자열 (String): 정규 표현식을 적용할 대상 텍스트입니다.
- 매치 (Match): 주어진 문자열에서 패턴과 일치하는 부분입니다.
- 메타문자 (Metacharacter): 정규 표현식에서 특수한 의미를 가지는 문자입니다. 예를 들어,
.
는 임의의 문자를 의미하고,+
는 앞의 패턴이 한 번 이상 반복되는 것을 의미합니다. - 특수 시퀀스 (Special Sequences): 정규 표현식을 좀 더 간단하게 작성하기 위해 미리 정의된 패턴입니다. 예를 들어,
\d
는 숫자에 대응되는 특수 시퀀스입니다.
re 모듈 사용법
Python의 re
모듈을 사용하여 정규 표현식을 적용합니다. 아래는 간단한 예제 코드입니다:
import re
# 패턴 매치 검사
pattern = r"apple"
text = "I have an apple."
match = re.search(pattern, text)
if match:
print("Match found!")
else:
print("No match found.")
# 패턴 추출
pattern = r"(\w+)\s+(\w+)"
text = "John Doe"
match = re.search(pattern, text)
if match:
first_name = match.group(1)
last_name = match.group(2)
print(f"First name: {first_name}")
print(f"Last name: {last_name}")
# 패턴 치환
pattern = r"apple"
text = "I have an apple. It's a delicious apple."
replaced_text = re.sub(pattern, "orange", text)
print(replaced_text)
위의 예제에서는 re.search()
함수를 사용하여 패턴 매치를 검사합니다. re.search()
함수는 패턴과 일치하는 첫 번째 매치를 반환하거나, 일치하는 매치가 없을 경우 None을 반환합니다.
또한, re.sub()
함수를 사용하여 패턴에 맞는 부분을 치환할 수 있습니다. 위 예제에서는 “apple”이라는 패턴을 “orange”로 치환하였습니다.
정규 표현식 패턴의 작성
정규 표현식은 다양한 패턴을 표현할 수 있습니다. 아래는 몇 가지 예시입니다:
\d+
: 하나 이상의 숫자에 매치됩니다.[aeiou]
: 소문자 모음에 매치됩니다.\w
: 숫자와 문자에 매치됩니다..
: 임의의 문자에 매치됩니다.
마무리
Python의 re
모듈을 사용하여 정규 표현식을 다루는 방법에 대해 알아보았습니다. 정규 표현식은 텍스트 처리에 유용한 도구로써, 자주 사용되는 패턴을 찾는 데에 활용됩니다. 더 복잡한 패턴을 다루고 싶다면, 정규 표현식 문서를 참고하여 깊이있게 학습해보세요.