IT/Python
[파이썬] 정규 표현식
초코-모찌
2024. 3. 12. 21:57
728x90
파이썬의 정규 표현식은 문자열에서 특정한 패턴을 검색, 대체, 또는 분리할 때 사용하는 도구입니다.
're' 모듈을 통해 정규 표현식을 지원하며, 이를 통해 복잡한 문자열 처리를 간단하게 할 수 있습니다.
1. 기본 사용법
're' 모듈의 주요 함수
- re.match(): 문자열의 시작부터 패턴이 일치하는지 검사
- re.search(): 문자열 전체에 대해 패턴이 일치하는 부분이 있는지 검사
- re.findall(): 문자열에서 패턴과 일치하는 모든 부분을 찾아 리스트로 반환
- re.sub(): 문자열에서 패턴과 일치하는 부분을 다른 문자열로 대체
1) re.match() 예제
import re
pattern = r"Python"
string = "Python is fun"
match = re.match(pattern, string)
if match:
print("Match found:", match.group())
else:
print("No match")
2) re.search() 예제
search = re.search("fun", string)
if search:
print("Search found:", search.group())
else:
print("No search found")
3) re.findall() 예제
string = "Python is fun, isn't it? Programming with Python is very interesting."
matches = re.findall("Python", string)
print(matches) # 출력: ['Python', 'Python']
4) re.sub() 예제
replaced_string = re.sub("Python", "Coding", string)
print(replaced_string)
2. 정규 표현식 구성 요소
- 문자와 메타 문자: 정규 표현식에서는 일반 문자와 '특별한 의미를 가진' 메타 문자(meta characters)를 구분합니다. 예를 들어, a는 'a'라는 문자 자체를 의미하는 반면, .(점)은 '임의의 한 문자'를 의미하는 메타 문자입니다.
- 이스케이핑: 메타 문자를 일반 문자로 매칭하고 싶을 때는 \ (백슬래시)를 사용해 이스케이프합니다. 예를 들어, .는 임의의 문자와 일치하지만, \.는 실제 '.' 문자와 일치합니다.
정규 표현식 패턴
- .: 임의의 한 문자와 일치합니다.
- ^: 문자열의 시작과 일치합니다.
- $: 문자열의 끝과 일치합니다.
- *: 바로 앞의 문자가 0번 이상 반복되는 경우와 일치합니다.
- +: 바로 앞의 문자가 1번 이상 반복되는 경우와 일치합니다.
- ?: 바로 앞의 문자가 0번 또는 1번 나타나는 경우와 일치합니다.
- {m}: 바로 앞의 문자가 m번 나타나는 경우와 일치합니다.
- {m,n}: 바로 앞의 문자가 최소 m번, 최대 n번 나타나는 경우와 일치합니다.
- [abc]: 괄호 안의 문자들 중 하나와 일치합니다.
- |: 둘 중 하나와 일치합니다 (OR 조건).
- (pattern): 패턴을 그룹으로 묶습니다.
자주 사용되는 메타 문자
- [ ]: 대괄호 안에 있는 문자들 중 하나와 일치합니다. 예를 들어, [abc]는 'a', 'b', 'c' 중 하나와 일치합니다.
- -: 범위를 나타내는 데 사용됩니다. 예를 들어, [a-z]는 'a'부터 'z'까지의 소문자 알파벳 중 하나와 일치합니다.
- |: 논리적 'OR'을 의미합니다. 예를 들어, cat|dog는 'cat' 또는 'dog'와 일치합니다.
- *와 +: '*'는 0회 이상 반복되는 경우와 일치하고, '+'는 1회 이상 반복되는 경우와 일치합니다.
- ?: 바로 앞의 문자가 0회 또는 1회 나타나는 경우와 일치합니다.
- { }: 지정된 횟수만큼 반복되는 경우와 일치합니다. 예를 들어, a{2,3}는 'a'가 2회 또는 3회 연속해서 나타나는 경우와 일치합니다.
728x90
반응형