.search, .group, .compile, 등 설명

Leejaegun·2025년 7월 6일

코딩테스트 시리즈

목록 보기
41/49

파이썬의 정규표현식(re 모듈)에서 자주 쓰는
.group, .search, .compile, re.DOTALL 에 대해서 알아봅시다. 코드구현 때 자주 언급되니 미리 알아두면 좋습니다.


1. re.compile

  • 정규표현식 패턴을 미리 컴파일해서, 여러 번 쓸 때 효율적으로 사용할 수 있게 해주는 함수입니다.
  • 컴파일된 패턴 객체를 만들고, 그 객체로 .search(), .match(), .findall() 등을 쓸 수 있습니다.

예시

import re

pattern = re.compile(r"\d{4}-\d{2}-\d{2}")  # 날짜 패턴(예: 2024-06-01)
result = pattern.search("오늘은 2024-06-01 입니다.")
print(result.group(0))  # 결과: 2024-06-01

2. re.search

  • 문자열 전체에서 정규표현식과 매치되는 첫 번째 부분을 찾아 Match 객체로 반환합니다.
  • 찾는 부분이 없으면 None을 반환합니다.

예시

import re

result = re.search(r"cat", "A black cat is here.")
if result:
    print(result.group(0))  # 결과: cat

3. .group

  • Match 객체에서 실제로 매치된 문자열(또는 그룹)을 꺼내올 때 사용합니다.
  • .group(0)은 전체 매치,
    .group(1), .group(2) 등은 소괄호로 감싼 그룹에 해당하는 부분입니다.

예시

import re

result = re.search(r"(\d+):(\d+)", "시간 12:34")
if result:
    print(result.group(0))  # 전체: 12:34
    print(result.group(1))  # 첫 번째 그룹: 12
    print(result.group(2))  # 두 번째 그룹: 34

4. re.DOTALL

  • 정규표현식에서 .(dot)이 줄바꿈 문자(\n)까지 포함해서 모든 문자와 매치되게 해주는 옵션입니다.
  • 보통 re.findall, re.search 등에서 옵션으로 사용합니다.

예시

import re

text = "hello\nworld"
result1 = re.search(r"hello.world", text)
print(result1)  # None (줄바꿈은 .에 매치 안 됨)

result2 = re.search(r"hello.world", text, re.DOTALL)
print(result2.group(0))  # hello\nworld (줄바꿈까지 매치됨)

요약

  • re.compile(패턴): 정규표현식 패턴을 미리 컴파일해서 패턴 객체를 만듦
  • re.search(패턴, 문자열): 문자열에서 패턴과 매치되는 첫 부분을 찾아 Match 객체로 반환
  • .group(n): Match 객체에서 n번째 그룹(또는 전체 매치)을 꺼냄
  • re.DOTALL: .이 줄바꿈까지 포함해서 모든 문자와 매치되게 하는 옵션
profile
Lee_AA

0개의 댓글