python

정규표현식 re

fe_lee 2024. 10. 17. 17:08

정규표현식이란?

정규 표현식(Regular Expressions, regex)은 문자열에서 특정 패턴을 찾고 조작하는 강력한 도구입니다.

Python의 re 모듈은 이러한 정규 표현식을 사용할 수 있도록 다양한 기능을 제공합니다. 

 

import re

 

1. re.match()

문자열의 시작 부분에서 정규 표현식과 일치하는지 검사합니다. 일치하는 경우 Match 객체를 반환하고, 그렇지 않으면 None을 반환합니다.

pattern = r'\d+'  # 하나 이상의 숫자
text = '123abc'

match = re.match(pattern, text)
if match:
    print("Match found:", match.group())
else:
    print("No match")

 

 

2. re.search()

문자열의 전체에서 정규 표현식과 일치하는 부분을 검색합니다. 일치하는 경우 Match 객체를 반환하고, 그렇지 않으면 None을 반환합니다.

text = 'abc123xyz'
search = re.search(pattern, text)
if search:
    print("Search found:", search.group())
else:
    print("No match")

 

3. re.findall()

문자열에서 정규 표현식과 일치하는 모든 부분을 리스트로 반환합니다.

text = 'abc123xyz456'
matches = re.findall(pattern, text)
print("Findall matches:", matches)

 

4. re.sub()

정규 표현식과 일치하는 부분을 다른 문자열로 대체합니다.

text = 'abc123xyz456'
result = re.sub(pattern, 'NUM', text)
print("Substituted text:", result)

5. 정규 표현식 패턴의 기본 구성

import re

text = "문의는 info@example.com 또는 support@example.org로 주시기 바랍니다."
pattern = r'[\w\.-]+@[\w\.-]+'  # 이메일 주소 패턴

emails = re.findall(pattern, text)
print("Found emails:", emails)
  • 문자 클래스: 대괄호 []를 사용하여 특정 문자 집합을 정의합니다.
    • 예: [abc]는 'a', 'b', 또는 'c' 중 하나와 일치합니다.
  • 메타 문자: 정규 표현식에서 특별한 의미를 갖는 문자입니다.
    • .: 줄 바꿈 문자를 제외한 모든 문자와 일치합니다.
    • ^: 문자열의 시작을 나타냅니다.
    • $: 문자열의 끝을 나타냅니다.
    • *: 0회 이상 반복을 의미합니다.
    • +: 1회 이상 반복을 의미합니다.
    • ?: 0회 또는 1회 발생을 의미합니다.

 

'python' 카테고리의 다른 글

두 리스트에서 중복 된 값 추출하기  (0) 2024.10.17