정규식(Regular Expression)은 문자열의 패턴을 표현하는 문자열입니다. Python에서는 re
모듈을 사용하여 정규식을 처리할 수 있습니다. 정규식은 문자열의 검색, 추출, 대체 등 다양한 작업에 유용하게 사용될 수 있습니다. 이번 블로그에서는 Python에서 정규식을 사용하는 방법을 알아보겠습니다.
정규식을 사용한 문자열 검색
먼저, 정규식을 사용하여 문자열에서 패턴을 검색하는 방법을 살펴보겠습니다.
import re
# 패턴과 문자열 정의
pattern = r'apple'
text = 'I have an apple and a banana.'
# 검색
match = re.search(pattern, text)
if match:
print('패턴을 찾았습니다!')
else:
print('패턴을 찾지 못했습니다.')
위의 예제에서는 re.search()
함수를 사용하여 패턴을 검색합니다. 첫 번째 매개변수로 검색할 패턴을 전달하고, 두 번째 매개변수로 검색 대상 문자열을 전달합니다.
검색 결과는 match
객체로 반환되며, 해당 객체를 통해 검색 결과를 확인할 수 있습니다. 만약 패턴이 문자열에서 발견된다면, match
객체는 참 값을 가지게 되고, 발견되지 않는다면 거짓 값을 가지게 됩니다.
정규식을 사용한 문자열 추출
다음으로, 정규식을 사용하여 문자열에서 원하는 부분을 추출하는 방법을 알아보겠습니다.
import re
# 패턴과 문자열 정의
pattern = r'(\d{4})-(\d{2})-(\d{2})'
text = 'Today is 2023-05-11.'
# 추출
result = re.findall(pattern, text)
if result:
for match in result:
year, month, day = match
print(f'날짜: {year}년 {month}월 {day}일')
위의 예제에서는 re.findall()
함수를 사용하여 패턴과 일치하는 모든 파트를 추출합니다. 첫 번째 매개변수로 추출할 패턴을 전달하고, 두 번째 매개변수로 추출 대상 문자열을 전달합니다.
추출 결과는 리스트 형태로 반환되며, 각 매치된 패턴은 튜플로 저장됩니다. 이를 통해 원하는 부분을 추출할 수 있습니다. 위의 예제에서는 날짜 형식인 "yyyy-mm-dd"와 매치되는 부분을 추출하고, 각각의 연도, 월, 일을 출력합니다.
정규식을 사용한 문자열 대체
마지막으로, 정규식을 사용하여 문자열 내의 특정 부분을 대체하는 방법을 살펴보겠습니다.
import re
패턴과 문자열 정의
pattern = r'apple'
text = 'I have an apple and a banana.'
대체
new_text = re.sub(pattern, 'orange', text)
print(new_text)
위의 예제에서는 re.sub()
함수를 사용하여 패턴과 일치하는 부분을 다른 문자열로 대체합니다. 첫 번째 매개변수로 패턴을 전달하고, 두 번째 매개변수로 대체할 문자열을 전달합니다. 세 번째 매개변수로 대상 문자열을 전달하고, 대체된 새로운 문자열을 반환합니다.
위의 예제에서는 "apple"이라는 단어를 "orange"로 대체하여 새로운 문자열을 생성하고 출력합니다.