티스토리 뷰
오늘은 파이썬에서 업무 자동화를 위해 필수적인 도구 중 하나인 정규 표현식에 대해 알아보겠습니다. 정규 표현식은 복잡한 문자열 패턴을 식별, 추출, 대체 또는 삭제하는 데 사용되는 매우 강력한 방법입니다. 파이썬에서는 re
모듈을 통해 이 기능을 제공합니다.
1. 정규 표현식의 기초
가. 패턴 매칭: 문자열에서 특정 패턴을 찾는 것으로, 예를 들어 이메일 주소나 전화번호 같은 형식을 갖는 문자열을 찾을 때 유용합니다.
나. 메타문자: 정규 표현식에서 특별한 의미를 가지는 문자들로, 예를 들어 .
는 임의의 한 문자를, *
는 앞의 문자가 0회 이상 반복되는 패턴을 의미합니다.
다. 이스케이프 문자: \
를 사용하여 메타문자를 일반 문자로서 사용할 수 있게 해줍니다.
라. 문자 클래스: [a-z]
와 같이 특정한 문자 집합 중 하나를 매치할 때 사용됩니다.
마. 양자화자: 문자가 몇 번 반복되는지 지정합니다. 예를 들어, a{3}
은 'a'가 정확히 3번 반복됨을 의미합니다.
바. 그룹화: 괄호 ()
를 사용하여 문자열의 일부를 하나의 단위로 묶을 수 있습니다.
사. 앵커: 문자열의 시작(^
)과 끝($
)을 지정하는 데 사용됩니다.
2. 파이썬 re
모듈의 주요 함수들과 사용 예시
가. re.search(pattern, string)
- 문자열 내에서 패턴과 일치하는 첫 부분을 검색합니다.
- 예시:
re.search('\d{4}', 'The year 2021')
는 '2021'을 반환합니다.
나. re.match(pattern, string)
- 문자열의 시작이 패턴과 일치하는지 검사합니다.
- 예시:
re.match('Hello', 'Hello World!')
는 'Hello'를 반환합니다.
다. re.findall(pattern, string)
- 문자열에서 패턴과 일치하는 모든 부분을 찾아 리스트로 반환합니다.
- 예시:
re.findall('\d', 'Number1, Number2')
는 ['1', '2']를 반환합니다.
라. re.sub(pattern, repl, string)
- 패턴과 일치하는 부분을 다른 문자열로 대체합니다.
- 예시:
re.sub('\d', '*', 'Number1')
는 'Number*'를 반환합니다.
마. re.compile(pattern)
- 주어진 패턴을 컴파일하여 재사용 가능한 정규 표현식 객체를 생성합니다.
- 예시:
pattern = re.compile('\d{4}')
과pattern.search('The year 2021')
는 '2021'을 반환합니다.
3. 실제 사용 예시
import re
# 이메일 주소 찾기
text = "Contact us at: info@example.com"
email_pattern = '[\w\.-]+@[\w\.-]+'
email = re.search(email_pattern, text)
if email:
print(email.group()) # info@example.com
정규 표현식은 매우 강력하지만 복잡할 수 있습니다. 따라서, 패턴이 올바르게 작동하는지 테스트하는 것이 중요하며, 온라인 정규 표현식 테스터를 사용하여 패턴을 빠르게 실험해볼 수 있습니다.
정규 표현식을 통해 파이썬에서 문자열 처리를 더 효율적이고 강력하게 할 수 있습니다. 이 도구를 활용하여 업무 자동화를 더욱 강화해보세요!
- Total
- Today
- Yesterday
- 장기자랑
- 참고작품
- 시간관리
- 마인드맵
- 명상
- 교육
- 자기주도학습
- 파이선
- 가요차트
- 사진
- 명언
- 자기계발
- RCY
- 독서
- 아인슈타인
- 교과연구회
- 멜론
- 대학원
- 수업활용
- 코렐
- 팝차트
- 수업자료
- 프로그램
- ChatGPT
- 아이들
- 유틸
- 미술
- 2008년
- 멜론차트
- 동영상
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |