파이썬(Python) 정규 표현식 기초부터 고급 활용까지
파이썬에서 정규 표현식(Regex)은 문자열을 검색하고 조작하는 데 강력한 도구입니다. 정규 표현식은 특정 패턴을 찾거나 복잡한 문자열 작업을 단순화할 수 있습니다. 이 글에서는 정규 표현식의 기본 개념부터 고급 활용 방법까지 단계별로 알아보겠습니다.
1. 정규 표현식이란?
정규 표현식은 문자열에서 특정 패턴을 찾기 위한 일련의 문자입니다. 복잡한 문자열 검색, 대체 및 조작 작업을 간단하고 효율적으로 수행할 수 있게 해줍니다.
2. 파이썬에서 정규 표현식 사용하기
파이썬에서는 re
모듈을 사용하여 정규 표현식을 다룰 수 있습니다. 이 모듈을 사용하면 정규 표현식을 정의하고 이를 사용하여 문자열을 검색, 일치, 분할 등의 작업을 수행할 수 있습니다.
import re
pattern = r'\bword\b'
text = 'A word in a sentence.'
match = re.search(pattern, text)
if match:
print('패턴이 발견되었습니다:', match.group())
3. 기본 패턴과 메타 문자
정규 표현식에서 패턴을 정의하기 위해 다양한 메타 문자를 사용할 수 있습니다.
기본 패턴
.
: 임의의 한 문자^
: 문자열의 시작$
: 문자열의 끝*
: 0회 이상 반복+
: 1회 이상 반복?
: 0회 또는 1회
메타 문자
\d
: 숫자와 일치\w
: 문자와 일치\s
: 공백 문자와 일치[abc]
: a, b 또는 c 중 하나와 일치[^abc]
: a, b, c 이외의 문자와 일치a{2}
: a가 정확히 2회 반복
4. 정규 표현식 함수
파이썬 re
모듈은 정규 표현식을 다루기 위한 여러 함수를 제공합니다.
search
문자열에서 패턴을 검색합니다.
match = re.search(r'\d+', 'My number is 123')
print(match.group()) # 123
match
문자열의 시작에서 패턴을 검색합니다.
match = re.match(r'\d+', '123 is my number')
print(match.group()) # 123
findall
문자열에서 패턴과 일치하는 모든 부분을 리스트로 반환합니다.
matches = re.findall(r'\d+', 'There are 123 apples and 456 oranges')
print(matches) # ['123', '456']
sub
문자열에서 패턴과 일치하는 부분을 다른 문자열로 대체합니다.
result = re.sub(r'apple', 'banana', 'I like apple')
print(result) # I like banana
5. 고급 패턴과 응용
정규 표현식을 더욱 강력하게 활용하기 위해 고급 패턴과 기법을 사용할 수 있습니다.
그룹핑과 역참조
괄호를 사용하여 패턴의 일부분을 그룹으로 묶을 수 있습니다. 역참조를 사용하면 동일한 그룹을 다시 참조할 수 있습니다.
pattern = r'(\b\w+)\s+\1'
text = 'hello hello world'
match = re.search(pattern, text)
print(match.group()) # hello hello
전방탐색과 후방탐색
특정 패턴 앞이나 뒤에 특정 패턴이 있는지 확인할 수 있습니다.
pattern = r'(?<=\$)\d+'
text = 'The price is $100'
match = re.search(pattern, text)
print(match.group()) # 100
6. 실전 예제
정규 표현식을 실제로 어떻게 활용할 수 있는지 몇 가지 예제를 통해 알아보겠습니다.
이메일 주소 유효성 검사
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
email = 'example@example.com'
if re.match(pattern, email):
print('유효한 이메일 주소입니다.')
else:
print('유효하지 않은 이메일 주소입니다.')
전화번호 형식 변환
pattern = r'(\d{3})-(\d{3})-(\d{4})'
text = 'My number is 123-456-7890'
result = re.sub(pattern, r'(\1) \2-\3', text)
print(result) # My number is (123) 456-7890
7. 결론
파이썬에서 정규 표현식을 사용하면 문자열을 효율적으로 검색하고 조작할 수 있습니다. 기본 개념부터 고급 패턴까지 익히면 다양한 문자열 처리 작업을 간편하게 수행할 수 있습니다. 이 가이드에서 소개한 내용을 바탕으로 정규 표현식을 활용하여 복잡한 문자열 작업을 더욱 쉽게 해결해 보세요.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
파이썬(Python) 파일 쓰기, 기초부터 고급 테크닉까지 (0) | 2024.07.27 |
---|---|
파이썬(Python) 파일 읽기, 다양한 방법과 실전 예제 (0) | 2024.07.26 |
파이썬 문자열 메서드 기본 사용 방법과 실전 예제 (0) | 2024.07.24 |
파이썬(Python) 문자열 슬라이싱, 연결, 포맷팅 방법 (0) | 2024.07.23 |
파이썬(Python) 집합(set) 기본 개념, 고급 연산, 실전 예제 (0) | 2024.07.22 |