[파이썬] 정규 표현식의 정의와 개요
정규 표현식(Regular Expression)은 문자열에서 패턴을 찾고 일치하는 부분을 추출하거나 대체하는 기능을 제공하는 문자열 처리 도구입니다. 정규 표현식은 다양한 프로그래밍 언어에서 지원되며, 주로 문자열 검색과 대체 작업에 자주 사용됩니다.
정규 표현식의 구성 요소
정규 표현식은 다양한 메타문자(meta characters)와 문자 클래스(character classes) 등으로 구성됩니다. 각각의 구성 요소는 다음과 같은 역할을 수행합니다.
1. 메타문자 (Meta Characters)
[]
: 문자 클래스를 지정합니다. 문자열에서 일치하는 단일 문자를 찾을 수 있습니다..
: 임의의 문자를 나타냅니다. 개행 문자를 제외한 모든 문자와 일치합니다.*
: 바로 앞에 있는 문자나 문자 클래스가 없거나 여러 번 나올 수 있음을 나타냅니다.+
: 바로 앞에 있는 문자나 문자 클래스가 한 번 이상 나옴을 나타냅니다.?
: 바로 앞에 있는 문자나 문자 클래스가 없거나 한 번 나옴을 나타냅니다.^
: 문자열의 시작을 나타냅니다.$
: 문자열의 끝을 나타냅니다.
2. 문자 클래스 (Character Classes)
\d
: 숫자와 일치합니다.\D
: 숫자가 아닌 문자와 일치합니다.\w
: 숫자와 문자, 밑줄을 포함한 모든 단어 문자와 일치합니다.\W
: 숫자와 문자, 밑줄이 아닌 모든 문자와 일치합니다.\s
: 공백 문자와 일치합니다.\S
: 공백 문자가 아닌 모든 문자와 일치합니다.
정규 표현식의 활용
파이썬에서는 re
모듈을 사용하여 정규 표현식을 처리할 수 있습니다. 아래는 간단한 예제 코드입니다.
import re
# 문자열에서 숫자 찾기
text = "I have 2 apples and 3 bananas."
matches = re.findall(r'\d', text) # 숫자를 모두 찾음
print(matches) # ['2', '3']
# 이메일 주소 유효성 검사
email = "example@example.com"
if re.match(r'^\w+@\w+\.\w+$', email):
print("Valid email address")
else:
print("Invalid email address")
위 코드에서는 "I have 2 apples and 3 bananas."
라는 문자열에서 숫자를 찾아 출력하고, 이메일 주소의 유효성을 검사합니다. re.findall()
함수는 일치하는 모든 문자열을 찾아 리스트로 반환하고, re.match()
함수는 문자열의 처음부터 정확히 일치하는지 여부를 확인합니다.
정규 표현식은 이외에도 많은 활용 방법을 제공하며, 복잡한 문자열 처리 작업을 효율적으로 수행할 수 있습니다. 따라서 프로그래밍에서 정규 표현식은 꼭 알아두어야 하는 필수 도구입니다.